<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span id="local-6989586621679677199"><span id="local-6989586621679677200"></span></span><span class="hs-pragma">{-# LANGUAGE DeriveDataTypeable #-}</span><span>
</span><span id="line-2"></span><span class="hs-pragma">{-# LANGUAGE DeriveGeneric #-}</span><span>
</span><span id="line-3"></span><span class="hs-pragma">{-# LANGUAGE FlexibleContexts #-}</span><span>
</span><span id="line-4"></span><span class="hs-pragma">{-# LANGUAGE RankNTypes #-}</span><span>
</span><span id="line-5"></span><span>
</span><span id="line-6"></span><span class="hs-comment">-----------------------------------------------------------------------------</span><span>
</span><span id="line-7"></span><span class="hs-comment">-- |</span><span>
</span><span id="line-8"></span><span class="hs-comment">-- Module      :  Distribution.Types.PackageDescription</span><span>
</span><span id="line-9"></span><span class="hs-comment">-- Copyright   :  Isaac Jones 2003-2005</span><span>
</span><span id="line-10"></span><span class="hs-comment">-- License     :  BSD3</span><span>
</span><span id="line-11"></span><span class="hs-comment">--</span><span>
</span><span id="line-12"></span><span class="hs-comment">-- Maintainer  :  cabal-devel@haskell.org</span><span>
</span><span id="line-13"></span><span class="hs-comment">-- Portability :  portable</span><span>
</span><span id="line-14"></span><span class="hs-comment">--</span><span>
</span><span id="line-15"></span><span class="hs-comment">-- This defines the data structure for the @.cabal@ file format. There are</span><span>
</span><span id="line-16"></span><span class="hs-comment">-- several parts to this structure. It has top level info and then 'Library',</span><span>
</span><span id="line-17"></span><span class="hs-comment">-- 'Executable', 'TestSuite', and 'Benchmark' sections each of which have</span><span>
</span><span id="line-18"></span><span class="hs-comment">-- associated 'BuildInfo' data that's used to build the library, exe, test, or</span><span>
</span><span id="line-19"></span><span class="hs-comment">-- benchmark.  To further complicate things there is both a 'PackageDescription'</span><span>
</span><span id="line-20"></span><span class="hs-comment">-- and a 'GenericPackageDescription'. This distinction relates to cabal</span><span>
</span><span id="line-21"></span><span class="hs-comment">-- configurations. When we initially read a @.cabal@ file we get a</span><span>
</span><span id="line-22"></span><span class="hs-comment">-- 'GenericPackageDescription' which has all the conditional sections.</span><span>
</span><span id="line-23"></span><span class="hs-comment">-- Before actually building a package we have to decide</span><span>
</span><span id="line-24"></span><span class="hs-comment">-- on each conditional. Once we've done that we get a 'PackageDescription'.</span><span>
</span><span id="line-25"></span><span class="hs-comment">-- It was done this way initially to avoid breaking too much stuff when the</span><span>
</span><span id="line-26"></span><span class="hs-comment">-- feature was introduced. It could probably do with being rationalised at some</span><span>
</span><span id="line-27"></span><span class="hs-comment">-- point to make it simpler.</span><span>
</span><span id="line-28"></span><span>
</span><span id="line-29"></span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">Distribution.Types.PackageDescription</span><span> </span><span class="hs-special">(</span><span>
</span><span id="line-30"></span><span>    </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier">PackageDescription</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-31"></span><span>    </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#license"><span class="hs-identifier">license</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-32"></span><span>    </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#license%27"><span class="hs-identifier">license'</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-33"></span><span>    </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#buildType"><span class="hs-identifier">buildType</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-34"></span><span>    </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#emptyPackageDescription"><span class="hs-identifier">emptyPackageDescription</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-35"></span><span>    </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#hasPublicLib"><span class="hs-identifier">hasPublicLib</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-36"></span><span>    </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#hasLibs"><span class="hs-identifier">hasLibs</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-37"></span><span>    </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#allLibraries"><span class="hs-identifier">allLibraries</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-38"></span><span>    </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#withLib"><span class="hs-identifier">withLib</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-39"></span><span>    </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#hasExes"><span class="hs-identifier">hasExes</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-40"></span><span>    </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#withExe"><span class="hs-identifier">withExe</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-41"></span><span>    </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#hasTests"><span class="hs-identifier">hasTests</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-42"></span><span>    </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#withTest"><span class="hs-identifier">withTest</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-43"></span><span>    </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#hasBenchmarks"><span class="hs-identifier">hasBenchmarks</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-44"></span><span>    </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#withBenchmark"><span class="hs-identifier">withBenchmark</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-45"></span><span>    </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#hasForeignLibs"><span class="hs-identifier">hasForeignLibs</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-46"></span><span>    </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#withForeignLib"><span class="hs-identifier">withForeignLib</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-47"></span><span>    </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#allBuildInfo"><span class="hs-identifier">allBuildInfo</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-48"></span><span>    </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#enabledBuildInfos"><span class="hs-identifier">enabledBuildInfos</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-49"></span><span>    </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#allBuildDepends"><span class="hs-identifier">allBuildDepends</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-50"></span><span>    </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#enabledBuildDepends"><span class="hs-identifier">enabledBuildDepends</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-51"></span><span>    </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#updatePackageDescription"><span class="hs-identifier">updatePackageDescription</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-52"></span><span>    </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#pkgComponents"><span class="hs-identifier">pkgComponents</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-53"></span><span>    </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#pkgBuildableComponents"><span class="hs-identifier">pkgBuildableComponents</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-54"></span><span>    </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#enabledComponents"><span class="hs-identifier">enabledComponents</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-55"></span><span>    </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#lookupComponent"><span class="hs-identifier">lookupComponent</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-56"></span><span>    </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#getComponent"><span class="hs-identifier">getComponent</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-57"></span><span>  </span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-58"></span><span>
</span><span id="line-59"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Prelude.html#"><span class="hs-identifier">Prelude</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-60"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Compat.Prelude.html"><span class="hs-identifier">Distribution.Compat.Prelude</span></a></span><span>
</span><span id="line-61"></span><span>
</span><span id="line-62"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Control.Monad.html#"><span class="hs-identifier">Control.Monad</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Control.Monad.html#%3C%3D%3C"><span class="hs-operator">(&lt;=&lt;)</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-63"></span><span>
</span><span id="line-64"></span><span class="hs-comment">-- lens</span><span>
</span><span id="line-65"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><a href="Distribution.Types.BuildInfo.Lens.html"><span class="hs-identifier">Distribution.Types.BuildInfo.Lens</span></a></span><span>  </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">L</span></span><span>
</span><span id="line-66"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Types.Library.html"><span class="hs-identifier">Distribution.Types.Library</span></a></span><span>
</span><span id="line-67"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Types.TestSuite.html"><span class="hs-identifier">Distribution.Types.TestSuite</span></a></span><span>
</span><span id="line-68"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Types.Executable.html"><span class="hs-identifier">Distribution.Types.Executable</span></a></span><span>
</span><span id="line-69"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Types.Benchmark.html"><span class="hs-identifier">Distribution.Types.Benchmark</span></a></span><span>
</span><span id="line-70"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Types.ForeignLib.html"><span class="hs-identifier">Distribution.Types.ForeignLib</span></a></span><span>
</span><span id="line-71"></span><span>
</span><span id="line-72"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Types.Component.html"><span class="hs-identifier">Distribution.Types.Component</span></a></span><span>
</span><span id="line-73"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Types.ComponentRequestedSpec.html"><span class="hs-identifier">Distribution.Types.ComponentRequestedSpec</span></a></span><span>
</span><span id="line-74"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Types.Dependency.html"><span class="hs-identifier">Distribution.Types.Dependency</span></a></span><span>
</span><span id="line-75"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Types.PackageId.html"><span class="hs-identifier">Distribution.Types.PackageId</span></a></span><span>
</span><span id="line-76"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Types.ComponentName.html"><span class="hs-identifier">Distribution.Types.ComponentName</span></a></span><span>
</span><span id="line-77"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Types.PackageName.html"><span class="hs-identifier">Distribution.Types.PackageName</span></a></span><span>
</span><span id="line-78"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Types.UnqualComponentName.html"><span class="hs-identifier">Distribution.Types.UnqualComponentName</span></a></span><span>
</span><span id="line-79"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Types.SetupBuildInfo.html"><span class="hs-identifier">Distribution.Types.SetupBuildInfo</span></a></span><span>
</span><span id="line-80"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Types.BuildInfo.html"><span class="hs-identifier">Distribution.Types.BuildInfo</span></a></span><span>
</span><span id="line-81"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Types.BuildType.html"><span class="hs-identifier">Distribution.Types.BuildType</span></a></span><span>
</span><span id="line-82"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Types.SourceRepo.html"><span class="hs-identifier">Distribution.Types.SourceRepo</span></a></span><span>
</span><span id="line-83"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Types.HookedBuildInfo.html"><span class="hs-identifier">Distribution.Types.HookedBuildInfo</span></a></span><span>
</span><span id="line-84"></span><span>
</span><span id="line-85"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.CabalSpecVersion.html"><span class="hs-identifier">Distribution.CabalSpecVersion</span></a></span><span>
</span><span id="line-86"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Compiler.html"><span class="hs-identifier">Distribution.Compiler</span></a></span><span>
</span><span id="line-87"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.License.html"><span class="hs-identifier">Distribution.License</span></a></span><span>
</span><span id="line-88"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Package.html"><span class="hs-identifier">Distribution.Package</span></a></span><span>
</span><span id="line-89"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Version.html"><span class="hs-identifier">Distribution.Version</span></a></span><span>
</span><span id="line-90"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Utils.ShortText.html"><span class="hs-identifier">Distribution.Utils.ShortText</span></a></span><span>
</span><span id="line-91"></span><span>
</span><span id="line-92"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><a href="Distribution.SPDX.html"><span class="hs-identifier">Distribution.SPDX</span></a></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">SPDX</span></span><span>
</span><span id="line-93"></span><span>
</span><span id="line-94"></span><span class="hs-comment">-- -----------------------------------------------------------------------------</span><span>
</span><span id="line-95"></span><span class="hs-comment">-- The PackageDescription type</span><span>
</span><span id="line-96"></span><span>
</span><span id="line-97"></span><span class="hs-comment">-- | This data type is the internal representation of the file @pkg.cabal@.</span><span>
</span><span id="line-98"></span><span class="hs-comment">-- It contains two kinds of information about the package: information</span><span>
</span><span id="line-99"></span><span class="hs-comment">-- which is needed for all packages, such as the package name and version, and</span><span>
</span><span id="line-100"></span><span class="hs-comment">-- information which is needed for the simple build system only, such as</span><span>
</span><span id="line-101"></span><span class="hs-comment">-- the compiler options and library name.</span><span>
</span><span id="line-102"></span><span class="hs-comment">--</span><span>
</span><span id="line-103"></span><span id="local-6989586621679677114"><span id="local-6989586621679677115"></span></span><span class="hs-keyword">data</span><span> </span><span id="PackageDescription"><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-var">PackageDescription</span></a></span></span><span>
</span><span id="line-104"></span><span>    </span><span class="hs-glyph">=</span><span>  </span><span id="PackageDescription"><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-var">PackageDescription</span></a></span></span><span> </span><span class="hs-special">{</span><span>
</span><span id="line-105"></span><span>        </span><span class="hs-comment">-- the following are required by all packages:</span><span>
</span><span id="line-106"></span><span>
</span><span id="line-107"></span><span>        </span><span class="hs-comment">-- | The version of the Cabal spec that this package description uses.</span><span>
</span><span id="line-108"></span><span>        </span><span id="specVersion"><span class="annot"><span class="annottext">PackageDescription -&gt; CabalSpecVersion
</span><a href="Distribution.Types.PackageDescription.html#specVersion"><span class="hs-identifier hs-var hs-var">specVersion</span></a></span></span><span>    </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.CabalSpecVersion.html#CabalSpecVersion"><span class="hs-identifier hs-type">CabalSpecVersion</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-109"></span><span>        </span><span id="package"><span class="annot"><span class="annottext">PackageDescription -&gt; PackageIdentifier
</span><a href="Distribution.Types.PackageDescription.html#package"><span class="hs-identifier hs-var hs-var">package</span></a></span></span><span>        </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageId.html#PackageIdentifier"><span class="hs-identifier hs-type">PackageIdentifier</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-110"></span><span>        </span><span id="licenseRaw"><span class="annot"><span class="annottext">PackageDescription -&gt; Either License License
</span><a href="Distribution.Types.PackageDescription.html#licenseRaw"><span class="hs-identifier hs-var hs-var">licenseRaw</span></a></span></span><span>     </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/Data.Either.html#Either"><span class="hs-identifier hs-type">Either</span></a></span><span> </span><span class="annot"><a href="Distribution.SPDX.License.html#License"><span class="hs-identifier hs-type">SPDX.License</span></a></span><span> </span><span class="annot"><a href="Distribution.License.html#License"><span class="hs-identifier hs-type">License</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-111"></span><span>        </span><span id="licenseFiles"><span class="annot"><span class="annottext">PackageDescription -&gt; [FilePath]
</span><a href="Distribution.Types.PackageDescription.html#licenseFiles"><span class="hs-identifier hs-var hs-var">licenseFiles</span></a></span></span><span>   </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="../../base/src/GHC.IO.html#FilePath"><span class="hs-identifier hs-type">FilePath</span></a></span><span class="hs-special">]</span><span class="hs-special">,</span><span>
</span><span id="line-112"></span><span>        </span><span id="copyright"><span class="annot"><span class="annottext">PackageDescription -&gt; ShortText
</span><a href="Distribution.Types.PackageDescription.html#copyright"><span class="hs-identifier hs-var hs-var">copyright</span></a></span></span><span>      </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="Distribution.Utils.ShortText.html#ShortText"><span class="hs-identifier hs-type">ShortText</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-113"></span><span>        </span><span id="maintainer"><span class="annot"><span class="annottext">PackageDescription -&gt; ShortText
</span><a href="Distribution.Types.PackageDescription.html#maintainer"><span class="hs-identifier hs-var hs-var">maintainer</span></a></span></span><span>     </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="Distribution.Utils.ShortText.html#ShortText"><span class="hs-identifier hs-type">ShortText</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-114"></span><span>        </span><span id="author"><span class="annot"><span class="annottext">PackageDescription -&gt; ShortText
</span><a href="Distribution.Types.PackageDescription.html#author"><span class="hs-identifier hs-var hs-var">author</span></a></span></span><span>         </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="Distribution.Utils.ShortText.html#ShortText"><span class="hs-identifier hs-type">ShortText</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-115"></span><span>        </span><span id="stability"><span class="annot"><span class="annottext">PackageDescription -&gt; ShortText
</span><a href="Distribution.Types.PackageDescription.html#stability"><span class="hs-identifier hs-var hs-var">stability</span></a></span></span><span>      </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="Distribution.Utils.ShortText.html#ShortText"><span class="hs-identifier hs-type">ShortText</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-116"></span><span>        </span><span id="testedWith"><span class="annot"><span class="annottext">PackageDescription -&gt; [(CompilerFlavor, VersionRange)]
</span><a href="Distribution.Types.PackageDescription.html#testedWith"><span class="hs-identifier hs-var hs-var">testedWith</span></a></span></span><span>     </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Compiler.html#CompilerFlavor"><span class="hs-identifier hs-type">CompilerFlavor</span></a></span><span class="hs-special">,</span><span class="annot"><a href="Distribution.Types.VersionRange.Internal.html#VersionRange"><span class="hs-identifier hs-type">VersionRange</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span class="hs-special">,</span><span>
</span><span id="line-117"></span><span>        </span><span id="homepage"><span class="annot"><span class="annottext">PackageDescription -&gt; ShortText
</span><a href="Distribution.Types.PackageDescription.html#homepage"><span class="hs-identifier hs-var hs-var">homepage</span></a></span></span><span>       </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="Distribution.Utils.ShortText.html#ShortText"><span class="hs-identifier hs-type">ShortText</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-118"></span><span>        </span><span id="pkgUrl"><span class="annot"><span class="annottext">PackageDescription -&gt; ShortText
</span><a href="Distribution.Types.PackageDescription.html#pkgUrl"><span class="hs-identifier hs-var hs-var">pkgUrl</span></a></span></span><span>         </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="Distribution.Utils.ShortText.html#ShortText"><span class="hs-identifier hs-type">ShortText</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-119"></span><span>        </span><span id="bugReports"><span class="annot"><span class="annottext">PackageDescription -&gt; ShortText
</span><a href="Distribution.Types.PackageDescription.html#bugReports"><span class="hs-identifier hs-var hs-var">bugReports</span></a></span></span><span>     </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="Distribution.Utils.ShortText.html#ShortText"><span class="hs-identifier hs-type">ShortText</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-120"></span><span>        </span><span id="sourceRepos"><span class="annot"><span class="annottext">PackageDescription -&gt; [SourceRepo]
</span><a href="Distribution.Types.PackageDescription.html#sourceRepos"><span class="hs-identifier hs-var hs-var">sourceRepos</span></a></span></span><span>    </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Types.SourceRepo.html#SourceRepo"><span class="hs-identifier hs-type">SourceRepo</span></a></span><span class="hs-special">]</span><span class="hs-special">,</span><span>
</span><span id="line-121"></span><span>        </span><span id="synopsis"><span class="annot"><span class="annottext">PackageDescription -&gt; ShortText
</span><a href="Distribution.Types.PackageDescription.html#synopsis"><span class="hs-identifier hs-var hs-var">synopsis</span></a></span></span><span>       </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="Distribution.Utils.ShortText.html#ShortText"><span class="hs-identifier hs-type">ShortText</span></a></span><span class="hs-special">,</span><span> </span><span class="hs-comment">-- ^A one-line summary of this package</span><span>
</span><span id="line-122"></span><span>        </span><span id="description"><span class="annot"><span class="annottext">PackageDescription -&gt; ShortText
</span><a href="Distribution.Types.PackageDescription.html#description"><span class="hs-identifier hs-var hs-var">description</span></a></span></span><span>    </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="Distribution.Utils.ShortText.html#ShortText"><span class="hs-identifier hs-type">ShortText</span></a></span><span class="hs-special">,</span><span> </span><span class="hs-comment">-- ^A more verbose description of this package</span><span>
</span><span id="line-123"></span><span>        </span><span id="category"><span class="annot"><span class="annottext">PackageDescription -&gt; ShortText
</span><a href="Distribution.Types.PackageDescription.html#category"><span class="hs-identifier hs-var hs-var">category</span></a></span></span><span>       </span><span class="hs-glyph">::</span><span> </span><span class="hs-glyph">!</span><span class="annot"><a href="Distribution.Utils.ShortText.html#ShortText"><span class="hs-identifier hs-type">ShortText</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-124"></span><span>        </span><span id="customFieldsPD"><span class="annot"><span class="annottext">PackageDescription -&gt; [(FilePath, FilePath)]
</span><a href="Distribution.Types.PackageDescription.html#customFieldsPD"><span class="hs-identifier hs-var hs-var">customFieldsPD</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span class="hs-special">,</span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span class="hs-special">,</span><span> </span><span class="hs-comment">-- ^Custom fields starting</span><span>
</span><span id="line-125"></span><span>                                             </span><span class="hs-comment">-- with x-, stored in a</span><span>
</span><span id="line-126"></span><span>                                             </span><span class="hs-comment">-- simple assoc-list.</span><span>
</span><span id="line-127"></span><span>
</span><span id="line-128"></span><span>        </span><span class="hs-comment">-- | The original @build-type@ value as parsed from the</span><span>
</span><span id="line-129"></span><span>        </span><span class="hs-comment">-- @.cabal@ file without defaulting. See also 'buildType'.</span><span>
</span><span id="line-130"></span><span>        </span><span class="hs-comment">--</span><span>
</span><span id="line-131"></span><span>        </span><span class="hs-comment">-- @since 2.2</span><span>
</span><span id="line-132"></span><span>        </span><span id="buildTypeRaw"><span class="annot"><span class="annottext">PackageDescription -&gt; Maybe BuildType
</span><a href="Distribution.Types.PackageDescription.html#buildTypeRaw"><span class="hs-identifier hs-var hs-var">buildTypeRaw</span></a></span></span><span>   </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.BuildType.html#BuildType"><span class="hs-identifier hs-type">BuildType</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-133"></span><span>        </span><span id="setupBuildInfo"><span class="annot"><span class="annottext">PackageDescription -&gt; Maybe SetupBuildInfo
</span><a href="Distribution.Types.PackageDescription.html#setupBuildInfo"><span class="hs-identifier hs-var hs-var">setupBuildInfo</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.SetupBuildInfo.html#SetupBuildInfo"><span class="hs-identifier hs-type">SetupBuildInfo</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-134"></span><span>        </span><span class="hs-comment">-- components</span><span>
</span><span id="line-135"></span><span>        </span><span id="library"><span class="annot"><span class="annottext">PackageDescription -&gt; Maybe Library
</span><a href="Distribution.Types.PackageDescription.html#library"><span class="hs-identifier hs-var hs-var">library</span></a></span></span><span>        </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.Library.html#Library"><span class="hs-identifier hs-type">Library</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-136"></span><span>        </span><span id="subLibraries"><span class="annot"><span class="annottext">PackageDescription -&gt; [Library]
</span><a href="Distribution.Types.PackageDescription.html#subLibraries"><span class="hs-identifier hs-var hs-var">subLibraries</span></a></span></span><span>   </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Types.Library.html#Library"><span class="hs-identifier hs-type">Library</span></a></span><span class="hs-special">]</span><span class="hs-special">,</span><span>
</span><span id="line-137"></span><span>        </span><span id="executables"><span class="annot"><span class="annottext">PackageDescription -&gt; [Executable]
</span><a href="Distribution.Types.PackageDescription.html#executables"><span class="hs-identifier hs-var hs-var">executables</span></a></span></span><span>    </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Types.Executable.html#Executable"><span class="hs-identifier hs-type">Executable</span></a></span><span class="hs-special">]</span><span class="hs-special">,</span><span>
</span><span id="line-138"></span><span>        </span><span id="foreignLibs"><span class="annot"><span class="annottext">PackageDescription -&gt; [ForeignLib]
</span><a href="Distribution.Types.PackageDescription.html#foreignLibs"><span class="hs-identifier hs-var hs-var">foreignLibs</span></a></span></span><span>    </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Types.ForeignLib.html#ForeignLib"><span class="hs-identifier hs-type">ForeignLib</span></a></span><span class="hs-special">]</span><span class="hs-special">,</span><span>
</span><span id="line-139"></span><span>        </span><span id="testSuites"><span class="annot"><span class="annottext">PackageDescription -&gt; [TestSuite]
</span><a href="Distribution.Types.PackageDescription.html#testSuites"><span class="hs-identifier hs-var hs-var">testSuites</span></a></span></span><span>     </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Types.TestSuite.html#TestSuite"><span class="hs-identifier hs-type">TestSuite</span></a></span><span class="hs-special">]</span><span class="hs-special">,</span><span>
</span><span id="line-140"></span><span>        </span><span id="benchmarks"><span class="annot"><span class="annottext">PackageDescription -&gt; [Benchmark]
</span><a href="Distribution.Types.PackageDescription.html#benchmarks"><span class="hs-identifier hs-var hs-var">benchmarks</span></a></span></span><span>     </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Types.Benchmark.html#Benchmark"><span class="hs-identifier hs-type">Benchmark</span></a></span><span class="hs-special">]</span><span class="hs-special">,</span><span>
</span><span id="line-141"></span><span>        </span><span class="hs-comment">-- files</span><span>
</span><span id="line-142"></span><span>        </span><span id="dataFiles"><span class="annot"><span class="annottext">PackageDescription -&gt; [FilePath]
</span><a href="Distribution.Types.PackageDescription.html#dataFiles"><span class="hs-identifier hs-var hs-var">dataFiles</span></a></span></span><span>      </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="../../base/src/GHC.IO.html#FilePath"><span class="hs-identifier hs-type">FilePath</span></a></span><span class="hs-special">]</span><span class="hs-special">,</span><span>
</span><span id="line-143"></span><span>        </span><span id="dataDir"><span class="annot"><span class="annottext">PackageDescription -&gt; FilePath
</span><a href="Distribution.Types.PackageDescription.html#dataDir"><span class="hs-identifier hs-var hs-var">dataDir</span></a></span></span><span>        </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.html#FilePath"><span class="hs-identifier hs-type">FilePath</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-144"></span><span>        </span><span id="extraSrcFiles"><span class="annot"><span class="annottext">PackageDescription -&gt; [FilePath]
</span><a href="Distribution.Types.PackageDescription.html#extraSrcFiles"><span class="hs-identifier hs-var hs-var">extraSrcFiles</span></a></span></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="../../base/src/GHC.IO.html#FilePath"><span class="hs-identifier hs-type">FilePath</span></a></span><span class="hs-special">]</span><span class="hs-special">,</span><span>
</span><span id="line-145"></span><span>        </span><span id="extraTmpFiles"><span class="annot"><span class="annottext">PackageDescription -&gt; [FilePath]
</span><a href="Distribution.Types.PackageDescription.html#extraTmpFiles"><span class="hs-identifier hs-var hs-var">extraTmpFiles</span></a></span></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="../../base/src/GHC.IO.html#FilePath"><span class="hs-identifier hs-type">FilePath</span></a></span><span class="hs-special">]</span><span class="hs-special">,</span><span>
</span><span id="line-146"></span><span>        </span><span id="extraDocFiles"><span class="annot"><span class="annottext">PackageDescription -&gt; [FilePath]
</span><a href="Distribution.Types.PackageDescription.html#extraDocFiles"><span class="hs-identifier hs-var hs-var">extraDocFiles</span></a></span></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="../../base/src/GHC.IO.html#FilePath"><span class="hs-identifier hs-type">FilePath</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-147"></span><span>    </span><span class="hs-special">}</span><span>
</span><span id="line-148"></span><span>    </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(forall x. PackageDescription -&gt; Rep PackageDescription x)
-&gt; (forall x. Rep PackageDescription x -&gt; PackageDescription)
-&gt; Generic PackageDescription
forall x. Rep PackageDescription x -&gt; PackageDescription
forall x. PackageDescription -&gt; Rep PackageDescription x
forall a.
(forall x. a -&gt; Rep a x) -&gt; (forall x. Rep a x -&gt; a) -&gt; Generic a
$cto :: forall x. Rep PackageDescription x -&gt; PackageDescription
$cfrom :: forall x. PackageDescription -&gt; Rep PackageDescription x
</span><a href="../../base/src/GHC.Generics.html#Generic"><span class="hs-identifier hs-var hs-var hs-var hs-var">Generic</span></a></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679677023"><span id="local-6989586621679677025"><span id="local-6989586621679677078"><span class="annot"><span class="annottext">Int -&gt; PackageDescription -&gt; ShowS
[PackageDescription] -&gt; ShowS
PackageDescription -&gt; FilePath
(Int -&gt; PackageDescription -&gt; ShowS)
-&gt; (PackageDescription -&gt; FilePath)
-&gt; ([PackageDescription] -&gt; ShowS)
-&gt; Show PackageDescription
forall a.
(Int -&gt; a -&gt; ShowS) -&gt; (a -&gt; FilePath) -&gt; ([a] -&gt; ShowS) -&gt; Show a
showList :: [PackageDescription] -&gt; ShowS
$cshowList :: [PackageDescription] -&gt; ShowS
show :: PackageDescription -&gt; FilePath
$cshow :: PackageDescription -&gt; FilePath
showsPrec :: Int -&gt; PackageDescription -&gt; ShowS
$cshowsPrec :: Int -&gt; PackageDescription -&gt; ShowS
</span><a href="../../base/src/GHC.Show.html#Show"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Show</span></a></span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679676883"><span id="local-6989586621679676998"><span id="local-6989586621679677001"><span id="local-6989586621679677003"><span class="annot"><span class="annottext">ReadPrec [PackageDescription]
ReadPrec PackageDescription
Int -&gt; ReadS PackageDescription
ReadS [PackageDescription]
(Int -&gt; ReadS PackageDescription)
-&gt; ReadS [PackageDescription]
-&gt; ReadPrec PackageDescription
-&gt; ReadPrec [PackageDescription]
-&gt; Read PackageDescription
forall a.
(Int -&gt; ReadS a)
-&gt; ReadS [a] -&gt; ReadPrec a -&gt; ReadPrec [a] -&gt; Read a
readListPrec :: ReadPrec [PackageDescription]
$creadListPrec :: ReadPrec [PackageDescription]
readPrec :: ReadPrec PackageDescription
$creadPrec :: ReadPrec PackageDescription
readList :: ReadS [PackageDescription]
$creadList :: ReadS [PackageDescription]
readsPrec :: Int -&gt; ReadS PackageDescription
$creadsPrec :: Int -&gt; ReadS PackageDescription
</span><a href="../../base/src/GHC.Read.html#Read"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Read</span></a></span></span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679676811"><span id="local-6989586621679676862"><span class="annot"><span class="annottext">PackageDescription -&gt; PackageDescription -&gt; Bool
(PackageDescription -&gt; PackageDescription -&gt; Bool)
-&gt; (PackageDescription -&gt; PackageDescription -&gt; Bool)
-&gt; Eq PackageDescription
forall a. (a -&gt; a -&gt; Bool) -&gt; (a -&gt; a -&gt; Bool) -&gt; Eq a
/= :: PackageDescription -&gt; PackageDescription -&gt; Bool
$c/= :: PackageDescription -&gt; PackageDescription -&gt; Bool
== :: PackageDescription -&gt; PackageDescription -&gt; Bool
$c== :: PackageDescription -&gt; PackageDescription -&gt; Bool
</span><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></span></span></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Data.Typeable.Internal.html#Typeable"><span class="hs-identifier hs-type">Typeable</span></a></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679676671"><span id="local-6989586621679676673"><span id="local-6989586621679676675"><span id="local-6989586621679676677"><span id="local-6989586621679676679"><span id="local-6989586621679676681"><span id="local-6989586621679676683"><span id="local-6989586621679676685"><span id="local-6989586621679676687"><span id="local-6989586621679676689"><span id="local-6989586621679676691"><span id="local-6989586621679676693"><span id="local-6989586621679676738"><span id="local-6989586621679676789"><span class="annot"><span class="annottext">Typeable PackageDescription
Typeable PackageDescription
-&gt; (forall (c :: * -&gt; *).
    (forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
    -&gt; (forall g. g -&gt; c g)
    -&gt; PackageDescription
    -&gt; c PackageDescription)
-&gt; (forall (c :: * -&gt; *).
    (forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
    -&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c PackageDescription)
-&gt; (PackageDescription -&gt; Constr)
-&gt; (PackageDescription -&gt; DataType)
-&gt; (forall (t :: * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d. Data d =&gt; c (t d)) -&gt; Maybe (c PackageDescription))
-&gt; (forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d e. (Data d, Data e) =&gt; c (t d e))
    -&gt; Maybe (c PackageDescription))
-&gt; ((forall b. Data b =&gt; b -&gt; b)
    -&gt; PackageDescription -&gt; PackageDescription)
-&gt; (forall r r'.
    (r -&gt; r' -&gt; r)
    -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; PackageDescription -&gt; r)
-&gt; (forall r r'.
    (r' -&gt; r -&gt; r)
    -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; PackageDescription -&gt; r)
-&gt; (forall u.
    (forall d. Data d =&gt; d -&gt; u) -&gt; PackageDescription -&gt; [u])
-&gt; (forall u.
    Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; PackageDescription -&gt; u)
-&gt; (forall (m :: * -&gt; *).
    Monad m =&gt;
    (forall d. Data d =&gt; d -&gt; m d)
    -&gt; PackageDescription -&gt; m PackageDescription)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d)
    -&gt; PackageDescription -&gt; m PackageDescription)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d)
    -&gt; PackageDescription -&gt; m PackageDescription)
-&gt; Data PackageDescription
PackageDescription -&gt; DataType
PackageDescription -&gt; Constr
(forall b. Data b =&gt; b -&gt; b)
-&gt; PackageDescription -&gt; PackageDescription
forall a.
Typeable a
-&gt; (forall (c :: * -&gt; *).
    (forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
    -&gt; (forall g. g -&gt; c g) -&gt; a -&gt; c a)
-&gt; (forall (c :: * -&gt; *).
    (forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
    -&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c a)
-&gt; (a -&gt; Constr)
-&gt; (a -&gt; DataType)
-&gt; (forall (t :: * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d. Data d =&gt; c (t d)) -&gt; Maybe (c a))
-&gt; (forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
    Typeable t =&gt;
    (forall d e. (Data d, Data e) =&gt; c (t d e)) -&gt; Maybe (c a))
-&gt; ((forall b. Data b =&gt; b -&gt; b) -&gt; a -&gt; a)
-&gt; (forall r r'.
    (r -&gt; r' -&gt; r) -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; a -&gt; r)
-&gt; (forall r r'.
    (r' -&gt; r -&gt; r) -&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; a -&gt; r)
-&gt; (forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; a -&gt; [u])
-&gt; (forall u. Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; a -&gt; u)
-&gt; (forall (m :: * -&gt; *).
    Monad m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; a -&gt; m a)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; a -&gt; m a)
-&gt; (forall (m :: * -&gt; *).
    MonadPlus m =&gt;
    (forall d. Data d =&gt; d -&gt; m d) -&gt; a -&gt; m a)
-&gt; Data a
forall u.
Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; PackageDescription -&gt; u
forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; PackageDescription -&gt; [u]
forall r r'.
(r -&gt; r' -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; PackageDescription -&gt; r
forall r r'.
(r' -&gt; r -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; PackageDescription -&gt; r
forall (m :: * -&gt; *).
Monad m =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; PackageDescription -&gt; m PackageDescription
forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; PackageDescription -&gt; m PackageDescription
forall (c :: * -&gt; *).
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c PackageDescription
forall (c :: * -&gt; *).
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g)
-&gt; PackageDescription
-&gt; c PackageDescription
forall (t :: * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c PackageDescription)
forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e))
-&gt; Maybe (c PackageDescription)
gmapMo :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; PackageDescription -&gt; m PackageDescription
$cgmapMo :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; PackageDescription -&gt; m PackageDescription
gmapMp :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; PackageDescription -&gt; m PackageDescription
$cgmapMp :: forall (m :: * -&gt; *).
MonadPlus m =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; PackageDescription -&gt; m PackageDescription
gmapM :: forall (m :: * -&gt; *).
Monad m =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; PackageDescription -&gt; m PackageDescription
$cgmapM :: forall (m :: * -&gt; *).
Monad m =&gt;
(forall d. Data d =&gt; d -&gt; m d)
-&gt; PackageDescription -&gt; m PackageDescription
gmapQi :: forall u.
Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; PackageDescription -&gt; u
$cgmapQi :: forall u.
Int -&gt; (forall d. Data d =&gt; d -&gt; u) -&gt; PackageDescription -&gt; u
gmapQ :: forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; PackageDescription -&gt; [u]
$cgmapQ :: forall u. (forall d. Data d =&gt; d -&gt; u) -&gt; PackageDescription -&gt; [u]
gmapQr :: forall r r'.
(r' -&gt; r -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; PackageDescription -&gt; r
$cgmapQr :: forall r r'.
(r' -&gt; r -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; PackageDescription -&gt; r
gmapQl :: forall r r'.
(r -&gt; r' -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; PackageDescription -&gt; r
$cgmapQl :: forall r r'.
(r -&gt; r' -&gt; r)
-&gt; r -&gt; (forall d. Data d =&gt; d -&gt; r') -&gt; PackageDescription -&gt; r
gmapT :: (forall b. Data b =&gt; b -&gt; b)
-&gt; PackageDescription -&gt; PackageDescription
$cgmapT :: (forall b. Data b =&gt; b -&gt; b)
-&gt; PackageDescription -&gt; PackageDescription
dataCast2 :: forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e))
-&gt; Maybe (c PackageDescription)
$cdataCast2 :: forall (t :: * -&gt; * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d e. (Data d, Data e) =&gt; c (t d e))
-&gt; Maybe (c PackageDescription)
dataCast1 :: forall (t :: * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c PackageDescription)
$cdataCast1 :: forall (t :: * -&gt; *) (c :: * -&gt; *).
Typeable t =&gt;
(forall d. Data d =&gt; c (t d)) -&gt; Maybe (c PackageDescription)
dataTypeOf :: PackageDescription -&gt; DataType
$cdataTypeOf :: PackageDescription -&gt; DataType
toConstr :: PackageDescription -&gt; Constr
$ctoConstr :: PackageDescription -&gt; Constr
gunfold :: forall (c :: * -&gt; *).
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c PackageDescription
$cgunfold :: forall (c :: * -&gt; *).
(forall b r. Data b =&gt; c (b -&gt; r) -&gt; c r)
-&gt; (forall r. r -&gt; c r) -&gt; Constr -&gt; c PackageDescription
gfoldl :: forall (c :: * -&gt; *).
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g)
-&gt; PackageDescription
-&gt; c PackageDescription
$cgfoldl :: forall (c :: * -&gt; *).
(forall d b. Data d =&gt; c (d -&gt; b) -&gt; d -&gt; c b)
-&gt; (forall g. g -&gt; c g)
-&gt; PackageDescription
-&gt; c PackageDescription
</span><a href="../../base/src/Data.Data.html#Data"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Data</span></a></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span class="hs-special">)</span><span>
</span><span id="line-149"></span><span>
</span><span id="line-150"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679676644"><span id="local-6989586621679676646"><span id="local-6989586621679676648"><span class="annot"><a href="../../binary/src/Data.Binary.Class.html#Binary"><span class="hs-identifier hs-type">Binary</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span></span></span></span><span>
</span><span id="line-151"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679676637"><span id="local-6989586621679676639"><span class="annot"><a href="Distribution.Utils.Structured.html#Structured"><span class="hs-identifier hs-type">Structured</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span></span></span><span>
</span><span id="line-152"></span><span>
</span><span id="line-153"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="../../deepseq/src/Control.DeepSeq.html#NFData"><span class="hs-identifier hs-type">NFData</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-keyword">where</span><span> </span><span id="local-6989586621679676497"><span class="annot"><span class="annottext">rnf :: PackageDescription -&gt; ()
</span><a href="../../deepseq/src/Control.DeepSeq.html#rnf"><span class="hs-identifier hs-var hs-var hs-var hs-var">rnf</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; ()
forall a. (Generic a, GNFData (Rep a)) =&gt; a -&gt; ()
</span><a href="Distribution.Compat.Prelude.html#genericRnf"><span class="hs-identifier hs-var">genericRnf</span></a></span><span>
</span><span id="line-154"></span><span>
</span><span id="line-155"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="Distribution.Package.html#Package"><span class="hs-identifier hs-type">Package</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-156"></span><span>  </span><span id="local-6989586621679676491"><span class="annot"><span class="annottext">packageId :: PackageDescription -&gt; PackageIdentifier
</span><a href="Distribution.Package.html#packageId"><span class="hs-identifier hs-var hs-var hs-var hs-var">packageId</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; PackageIdentifier
</span><a href="Distribution.Types.PackageDescription.html#package"><span class="hs-identifier hs-var hs-var">package</span></a></span><span>
</span><span id="line-157"></span><span>
</span><span id="line-158"></span><span class="hs-comment">-- | The SPDX 'LicenseExpression' of the package.</span><span>
</span><span id="line-159"></span><span class="hs-comment">--</span><span>
</span><span id="line-160"></span><span class="hs-comment">-- @since 2.2.0.0</span><span>
</span><span id="line-161"></span><span class="annot"><a href="Distribution.Types.PackageDescription.html#license"><span class="hs-identifier hs-type">license</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.SPDX.License.html#License"><span class="hs-identifier hs-type">SPDX.License</span></a></span><span>
</span><span id="line-162"></span><span id="license"><span class="annot"><span class="annottext">license :: PackageDescription -&gt; License
</span><a href="Distribution.Types.PackageDescription.html#license"><span class="hs-identifier hs-var hs-var">license</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Either License License -&gt; License
</span><a href="Distribution.Types.PackageDescription.html#license%27"><span class="hs-identifier hs-var">license'</span></a></span><span> </span><span class="annot"><span class="annottext">(Either License License -&gt; License)
-&gt; (PackageDescription -&gt; Either License License)
-&gt; PackageDescription
-&gt; License
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; Either License License
</span><a href="Distribution.Types.PackageDescription.html#licenseRaw"><span class="hs-identifier hs-var hs-var">licenseRaw</span></a></span><span>
</span><span id="line-163"></span><span>
</span><span id="line-164"></span><span class="hs-comment">-- | See 'license'.</span><span>
</span><span id="line-165"></span><span class="hs-comment">--</span><span>
</span><span id="line-166"></span><span class="hs-comment">-- @since 2.2.0.0</span><span>
</span><span id="line-167"></span><span class="annot"><a href="Distribution.Types.PackageDescription.html#license%27"><span class="hs-identifier hs-type">license'</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/Data.Either.html#Either"><span class="hs-identifier hs-type">Either</span></a></span><span> </span><span class="annot"><a href="Distribution.SPDX.License.html#License"><span class="hs-identifier hs-type">SPDX.License</span></a></span><span> </span><span class="annot"><a href="Distribution.License.html#License"><span class="hs-identifier hs-type">License</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.SPDX.License.html#License"><span class="hs-identifier hs-type">SPDX.License</span></a></span><span>
</span><span id="line-168"></span><span id="license%27"><span class="annot"><span class="annottext">license' :: Either License License -&gt; License
</span><a href="Distribution.Types.PackageDescription.html#license%27"><span class="hs-identifier hs-var hs-var">license'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(License -&gt; License)
-&gt; (License -&gt; License) -&gt; Either License License -&gt; License
forall a c b. (a -&gt; c) -&gt; (b -&gt; c) -&gt; Either a b -&gt; c
</span><a href="../../base/src/Data.Either.html#either"><span class="hs-identifier hs-var">either</span></a></span><span> </span><span class="annot"><span class="annottext">License -&gt; License
forall a. a -&gt; a
</span><a href="../../base/src/GHC.Base.html#id"><span class="hs-identifier hs-var">id</span></a></span><span> </span><span class="annot"><span class="annottext">License -&gt; License
</span><a href="Distribution.License.html#licenseToSPDX"><span class="hs-identifier hs-var">licenseToSPDX</span></a></span><span>
</span><span id="line-169"></span><span>
</span><span id="line-170"></span><span class="hs-comment">-- | The effective @build-type@ after applying defaulting rules.</span><span>
</span><span id="line-171"></span><span class="hs-comment">--</span><span>
</span><span id="line-172"></span><span class="hs-comment">-- The original @build-type@ value parsed is stored in the</span><span>
</span><span id="line-173"></span><span class="hs-comment">-- 'buildTypeRaw' field.  However, the @build-type@ field is optional</span><span>
</span><span id="line-174"></span><span class="hs-comment">-- and can therefore be empty in which case we need to compute the</span><span>
</span><span id="line-175"></span><span class="hs-comment">-- /effective/ @build-type@. This function implements the following</span><span>
</span><span id="line-176"></span><span class="hs-comment">-- defaulting rules:</span><span>
</span><span id="line-177"></span><span class="hs-comment">--</span><span>
</span><span id="line-178"></span><span class="hs-comment">--  * For @cabal-version:2.0@ and below, default to the @Custom@</span><span>
</span><span id="line-179"></span><span class="hs-comment">--    build-type unconditionally.</span><span>
</span><span id="line-180"></span><span class="hs-comment">--</span><span>
</span><span id="line-181"></span><span class="hs-comment">--  * Otherwise, if a @custom-setup@ stanza is defined, default to</span><span>
</span><span id="line-182"></span><span class="hs-comment">--    the @Custom@ build-type; else default to @Simple@ build-type.</span><span>
</span><span id="line-183"></span><span class="hs-comment">--</span><span>
</span><span id="line-184"></span><span class="hs-comment">-- @since 2.2</span><span>
</span><span id="line-185"></span><span class="annot"><a href="Distribution.Types.PackageDescription.html#buildType"><span class="hs-identifier hs-type">buildType</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.BuildType.html#BuildType"><span class="hs-identifier hs-type">BuildType</span></a></span><span>
</span><span id="line-186"></span><span id="buildType"><span class="annot"><span class="annottext">buildType :: PackageDescription -&gt; BuildType
</span><a href="Distribution.Types.PackageDescription.html#buildType"><span class="hs-identifier hs-var hs-var">buildType</span></a></span></span><span> </span><span id="local-6989586621679676485"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676485"><span class="hs-identifier hs-var">pkg</span></a></span></span><span>
</span><span id="line-187"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; CabalSpecVersion
</span><a href="Distribution.Types.PackageDescription.html#specVersion"><span class="hs-identifier hs-var hs-var">specVersion</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676485"><span class="hs-identifier hs-var">pkg</span></a></span><span> </span><span class="annot"><span class="annottext">CabalSpecVersion -&gt; CabalSpecVersion -&gt; Bool
forall a. Ord a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">&gt;=</span></span><span> </span><span class="annot"><span class="annottext">CabalSpecVersion
</span><a href="Distribution.CabalSpecVersion.html#CabalSpecV2_2"><span class="hs-identifier hs-var">CabalSpecV2_2</span></a></span><span>
</span><span id="line-188"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">BuildType -&gt; Maybe BuildType -&gt; BuildType
forall a. a -&gt; Maybe a -&gt; a
</span><a href="../../base/src/Data.Maybe.html#fromMaybe"><span class="hs-identifier hs-var">fromMaybe</span></a></span><span> </span><span class="annot"><span class="annottext">BuildType
</span><a href="#local-6989586621679676482"><span class="hs-identifier hs-var">newDefault</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PackageDescription -&gt; Maybe BuildType
</span><a href="Distribution.Types.PackageDescription.html#buildTypeRaw"><span class="hs-identifier hs-var hs-var">buildTypeRaw</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676485"><span class="hs-identifier hs-var">pkg</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-189"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-comment">-- cabal-version &lt; 2.1</span><span>
</span><span id="line-190"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">BuildType -&gt; Maybe BuildType -&gt; BuildType
forall a. a -&gt; Maybe a -&gt; a
</span><a href="../../base/src/Data.Maybe.html#fromMaybe"><span class="hs-identifier hs-var">fromMaybe</span></a></span><span> </span><span class="annot"><span class="annottext">BuildType
</span><a href="Distribution.Types.BuildType.html#Custom"><span class="hs-identifier hs-var">Custom</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PackageDescription -&gt; Maybe BuildType
</span><a href="Distribution.Types.PackageDescription.html#buildTypeRaw"><span class="hs-identifier hs-var hs-var">buildTypeRaw</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676485"><span class="hs-identifier hs-var">pkg</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-191"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-192"></span><span>    </span><span id="local-6989586621679676482"><span class="annot"><span class="annottext">newDefault :: BuildType
</span><a href="#local-6989586621679676482"><span class="hs-identifier hs-var hs-var">newDefault</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Maybe SetupBuildInfo -&gt; Bool
forall a. Maybe a -&gt; Bool
</span><a href="../../base/src/Data.Maybe.html#isNothing"><span class="hs-identifier hs-var">isNothing</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PackageDescription -&gt; Maybe SetupBuildInfo
</span><a href="Distribution.Types.PackageDescription.html#setupBuildInfo"><span class="hs-identifier hs-var hs-var">setupBuildInfo</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676485"><span class="hs-identifier hs-var">pkg</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">BuildType
</span><a href="Distribution.Types.BuildType.html#Simple"><span class="hs-identifier hs-var">Simple</span></a></span><span>
</span><span id="line-193"></span><span>               </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>                      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">BuildType
</span><a href="Distribution.Types.BuildType.html#Custom"><span class="hs-identifier hs-var">Custom</span></a></span><span>
</span><span id="line-194"></span><span>
</span><span id="line-195"></span><span class="annot"><a href="Distribution.Types.PackageDescription.html#emptyPackageDescription"><span class="hs-identifier hs-type">emptyPackageDescription</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span>
</span><span id="line-196"></span><span id="emptyPackageDescription"><span class="annot"><span class="annottext">emptyPackageDescription :: PackageDescription
</span><a href="Distribution.Types.PackageDescription.html#emptyPackageDescription"><span class="hs-identifier hs-var hs-var">emptyPackageDescription</span></a></span></span><span>
</span><span id="line-197"></span><span>    </span><span class="hs-glyph">=</span><span>  </span><span class="annot"><span class="annottext">PackageDescription :: CabalSpecVersion
-&gt; PackageIdentifier
-&gt; Either License License
-&gt; [FilePath]
-&gt; ShortText
-&gt; ShortText
-&gt; ShortText
-&gt; ShortText
-&gt; [(CompilerFlavor, VersionRange)]
-&gt; ShortText
-&gt; ShortText
-&gt; ShortText
-&gt; [SourceRepo]
-&gt; ShortText
-&gt; ShortText
-&gt; ShortText
-&gt; [(FilePath, FilePath)]
-&gt; Maybe BuildType
-&gt; Maybe SetupBuildInfo
-&gt; Maybe Library
-&gt; [Library]
-&gt; [Executable]
-&gt; [ForeignLib]
-&gt; [TestSuite]
-&gt; [Benchmark]
-&gt; [FilePath]
-&gt; FilePath
-&gt; [FilePath]
-&gt; [FilePath]
-&gt; [FilePath]
-&gt; PackageDescription
</span><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-special">{</span><span>
</span><span id="line-198"></span><span>                      </span><span class="annot"><span class="annottext">package :: PackageIdentifier
</span><a href="Distribution.Types.PackageDescription.html#package"><span class="hs-identifier hs-var">package</span></a></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PackageName -&gt; Version -&gt; PackageIdentifier
</span><a href="Distribution.Types.PackageId.html#PackageIdentifier"><span class="hs-identifier hs-var">PackageIdentifier</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">FilePath -&gt; PackageName
</span><a href="Distribution.Types.PackageName.html#mkPackageName"><span class="hs-identifier hs-var">mkPackageName</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><span class="hs-string">&quot;&quot;</span></span><span class="hs-special">)</span><span>
</span><span id="line-199"></span><span>                                                       </span><span class="annot"><span class="annottext">Version
</span><a href="Distribution.Types.Version.html#nullVersion"><span class="hs-identifier hs-var">nullVersion</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-200"></span><span>                      </span><span class="annot"><span class="annottext">licenseRaw :: Either License License
</span><a href="Distribution.Types.PackageDescription.html#licenseRaw"><span class="hs-identifier hs-var">licenseRaw</span></a></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">License -&gt; Either License License
forall a b. b -&gt; Either a b
</span><a href="../../base/src/Data.Either.html#Right"><span class="hs-identifier hs-var">Right</span></a></span><span> </span><span class="annot"><span class="annottext">License
</span><a href="Distribution.License.html#UnspecifiedLicense"><span class="hs-identifier hs-var">UnspecifiedLicense</span></a></span><span class="hs-special">,</span><span> </span><span class="hs-comment">-- TODO:</span><span>
</span><span id="line-201"></span><span>                      </span><span class="annot"><span class="annottext">licenseFiles :: [FilePath]
</span><a href="Distribution.Types.PackageDescription.html#licenseFiles"><span class="hs-identifier hs-var">licenseFiles</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span class="hs-special">,</span><span>
</span><span id="line-202"></span><span>                      </span><span class="annot"><span class="annottext">specVersion :: CabalSpecVersion
</span><a href="Distribution.Types.PackageDescription.html#specVersion"><span class="hs-identifier hs-var">specVersion</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">CabalSpecVersion
</span><a href="Distribution.CabalSpecVersion.html#CabalSpecV1_0"><span class="hs-identifier hs-var">CabalSpecV1_0</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-203"></span><span>                      </span><span class="annot"><span class="annottext">buildTypeRaw :: Maybe BuildType
</span><a href="Distribution.Types.PackageDescription.html#buildTypeRaw"><span class="hs-identifier hs-var">buildTypeRaw</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe BuildType
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-204"></span><span>                      </span><span class="annot"><span class="annottext">copyright :: ShortText
</span><a href="Distribution.Types.PackageDescription.html#copyright"><span class="hs-identifier hs-var">copyright</span></a></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ShortText
forall a. Monoid a =&gt; a
</span><a href="../../base/src/GHC.Base.html#mempty"><span class="hs-identifier hs-var">mempty</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-205"></span><span>                      </span><span class="annot"><span class="annottext">maintainer :: ShortText
</span><a href="Distribution.Types.PackageDescription.html#maintainer"><span class="hs-identifier hs-var">maintainer</span></a></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ShortText
forall a. Monoid a =&gt; a
</span><a href="../../base/src/GHC.Base.html#mempty"><span class="hs-identifier hs-var">mempty</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-206"></span><span>                      </span><span class="annot"><span class="annottext">author :: ShortText
</span><a href="Distribution.Types.PackageDescription.html#author"><span class="hs-identifier hs-var">author</span></a></span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ShortText
forall a. Monoid a =&gt; a
</span><a href="../../base/src/GHC.Base.html#mempty"><span class="hs-identifier hs-var">mempty</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-207"></span><span>                      </span><span class="annot"><span class="annottext">stability :: ShortText
</span><a href="Distribution.Types.PackageDescription.html#stability"><span class="hs-identifier hs-var">stability</span></a></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ShortText
forall a. Monoid a =&gt; a
</span><a href="../../base/src/GHC.Base.html#mempty"><span class="hs-identifier hs-var">mempty</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-208"></span><span>                      </span><span class="annot"><span class="annottext">testedWith :: [(CompilerFlavor, VersionRange)]
</span><a href="Distribution.Types.PackageDescription.html#testedWith"><span class="hs-identifier hs-var">testedWith</span></a></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span class="hs-special">,</span><span>
</span><span id="line-209"></span><span>                      </span><span class="annot"><span class="annottext">homepage :: ShortText
</span><a href="Distribution.Types.PackageDescription.html#homepage"><span class="hs-identifier hs-var">homepage</span></a></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ShortText
forall a. Monoid a =&gt; a
</span><a href="../../base/src/GHC.Base.html#mempty"><span class="hs-identifier hs-var">mempty</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-210"></span><span>                      </span><span class="annot"><span class="annottext">pkgUrl :: ShortText
</span><a href="Distribution.Types.PackageDescription.html#pkgUrl"><span class="hs-identifier hs-var">pkgUrl</span></a></span><span>       </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ShortText
forall a. Monoid a =&gt; a
</span><a href="../../base/src/GHC.Base.html#mempty"><span class="hs-identifier hs-var">mempty</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-211"></span><span>                      </span><span class="annot"><span class="annottext">bugReports :: ShortText
</span><a href="Distribution.Types.PackageDescription.html#bugReports"><span class="hs-identifier hs-var">bugReports</span></a></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ShortText
forall a. Monoid a =&gt; a
</span><a href="../../base/src/GHC.Base.html#mempty"><span class="hs-identifier hs-var">mempty</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-212"></span><span>                      </span><span class="annot"><span class="annottext">sourceRepos :: [SourceRepo]
</span><a href="Distribution.Types.PackageDescription.html#sourceRepos"><span class="hs-identifier hs-var">sourceRepos</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span class="hs-special">,</span><span>
</span><span id="line-213"></span><span>                      </span><span class="annot"><span class="annottext">synopsis :: ShortText
</span><a href="Distribution.Types.PackageDescription.html#synopsis"><span class="hs-identifier hs-var">synopsis</span></a></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ShortText
forall a. Monoid a =&gt; a
</span><a href="../../base/src/GHC.Base.html#mempty"><span class="hs-identifier hs-var">mempty</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-214"></span><span>                      </span><span class="annot"><span class="annottext">description :: ShortText
</span><a href="Distribution.Types.PackageDescription.html#description"><span class="hs-identifier hs-var">description</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ShortText
forall a. Monoid a =&gt; a
</span><a href="../../base/src/GHC.Base.html#mempty"><span class="hs-identifier hs-var">mempty</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-215"></span><span>                      </span><span class="annot"><span class="annottext">category :: ShortText
</span><a href="Distribution.Types.PackageDescription.html#category"><span class="hs-identifier hs-var">category</span></a></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ShortText
forall a. Monoid a =&gt; a
</span><a href="../../base/src/GHC.Base.html#mempty"><span class="hs-identifier hs-var">mempty</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-216"></span><span>                      </span><span class="annot"><span class="annottext">customFieldsPD :: [(FilePath, FilePath)]
</span><a href="Distribution.Types.PackageDescription.html#customFieldsPD"><span class="hs-identifier hs-var">customFieldsPD</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span class="hs-special">,</span><span>
</span><span id="line-217"></span><span>                      </span><span class="annot"><span class="annottext">setupBuildInfo :: Maybe SetupBuildInfo
</span><a href="Distribution.Types.PackageDescription.html#setupBuildInfo"><span class="hs-identifier hs-var">setupBuildInfo</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe SetupBuildInfo
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-218"></span><span>                      </span><span class="annot"><span class="annottext">library :: Maybe Library
</span><a href="Distribution.Types.PackageDescription.html#library"><span class="hs-identifier hs-var">library</span></a></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe Library
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-219"></span><span>                      </span><span class="annot"><span class="annottext">subLibraries :: [Library]
</span><a href="Distribution.Types.PackageDescription.html#subLibraries"><span class="hs-identifier hs-var">subLibraries</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span class="hs-special">,</span><span>
</span><span id="line-220"></span><span>                      </span><span class="annot"><span class="annottext">foreignLibs :: [ForeignLib]
</span><a href="Distribution.Types.PackageDescription.html#foreignLibs"><span class="hs-identifier hs-var">foreignLibs</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span class="hs-special">,</span><span>
</span><span id="line-221"></span><span>                      </span><span class="annot"><span class="annottext">executables :: [Executable]
</span><a href="Distribution.Types.PackageDescription.html#executables"><span class="hs-identifier hs-var">executables</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span class="hs-special">,</span><span>
</span><span id="line-222"></span><span>                      </span><span class="annot"><span class="annottext">testSuites :: [TestSuite]
</span><a href="Distribution.Types.PackageDescription.html#testSuites"><span class="hs-identifier hs-var">testSuites</span></a></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span class="hs-special">,</span><span>
</span><span id="line-223"></span><span>                      </span><span class="annot"><span class="annottext">benchmarks :: [Benchmark]
</span><a href="Distribution.Types.PackageDescription.html#benchmarks"><span class="hs-identifier hs-var">benchmarks</span></a></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span class="hs-special">,</span><span>
</span><span id="line-224"></span><span>                      </span><span class="annot"><span class="annottext">dataFiles :: [FilePath]
</span><a href="Distribution.Types.PackageDescription.html#dataFiles"><span class="hs-identifier hs-var">dataFiles</span></a></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span class="hs-special">,</span><span>
</span><span id="line-225"></span><span>                      </span><span class="annot"><span class="annottext">dataDir :: FilePath
</span><a href="Distribution.Types.PackageDescription.html#dataDir"><span class="hs-identifier hs-var">dataDir</span></a></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">FilePath
</span><span class="hs-string">&quot;.&quot;</span></span><span class="hs-special">,</span><span>
</span><span id="line-226"></span><span>                      </span><span class="annot"><span class="annottext">extraSrcFiles :: [FilePath]
</span><a href="Distribution.Types.PackageDescription.html#extraSrcFiles"><span class="hs-identifier hs-var">extraSrcFiles</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span class="hs-special">,</span><span>
</span><span id="line-227"></span><span>                      </span><span class="annot"><span class="annottext">extraTmpFiles :: [FilePath]
</span><a href="Distribution.Types.PackageDescription.html#extraTmpFiles"><span class="hs-identifier hs-var">extraTmpFiles</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span class="hs-special">,</span><span>
</span><span id="line-228"></span><span>                      </span><span class="annot"><span class="annottext">extraDocFiles :: [FilePath]
</span><a href="Distribution.Types.PackageDescription.html#extraDocFiles"><span class="hs-identifier hs-var">extraDocFiles</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-229"></span><span>                     </span><span class="hs-special">}</span><span>
</span><span id="line-230"></span><span>
</span><span id="line-231"></span><span class="hs-comment">-- ---------------------------------------------------------------------------</span><span>
</span><span id="line-232"></span><span class="hs-comment">-- The Library type</span><span>
</span><span id="line-233"></span><span>
</span><span id="line-234"></span><span class="hs-comment">-- | Does this package have a buildable PUBLIC library?</span><span>
</span><span id="line-235"></span><span class="annot"><a href="Distribution.Types.PackageDescription.html#hasPublicLib"><span class="hs-identifier hs-type">hasPublicLib</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-236"></span><span id="hasPublicLib"><span class="annot"><span class="annottext">hasPublicLib :: PackageDescription -&gt; Bool
</span><a href="Distribution.Types.PackageDescription.html#hasPublicLib"><span class="hs-identifier hs-var hs-var">hasPublicLib</span></a></span></span><span> </span><span id="local-6989586621679676473"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676473"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-237"></span><span>    </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; Maybe Library
</span><a href="Distribution.Types.PackageDescription.html#library"><span class="hs-identifier hs-var hs-var">library</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676473"><span class="hs-identifier hs-var">p</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-238"></span><span>        </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679676472"><span class="annot"><span class="annottext">Library
</span><a href="#local-6989586621679676472"><span class="hs-identifier hs-var">lib</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">BuildInfo -&gt; Bool
</span><a href="Distribution.Types.BuildInfo.html#buildable"><span class="hs-identifier hs-var hs-var">buildable</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Library -&gt; BuildInfo
</span><a href="Distribution.Types.Library.html#libBuildInfo"><span class="hs-identifier hs-var hs-var">libBuildInfo</span></a></span><span> </span><span class="annot"><span class="annottext">Library
</span><a href="#local-6989586621679676472"><span class="hs-identifier hs-var">lib</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-239"></span><span>        </span><span class="annot"><span class="annottext">Maybe Library
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span>  </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span>
</span><span id="line-240"></span><span>
</span><span id="line-241"></span><span class="hs-comment">-- | Does this package have any libraries?</span><span>
</span><span id="line-242"></span><span class="annot"><a href="Distribution.Types.PackageDescription.html#hasLibs"><span class="hs-identifier hs-type">hasLibs</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-243"></span><span id="hasLibs"><span class="annot"><span class="annottext">hasLibs :: PackageDescription -&gt; Bool
</span><a href="Distribution.Types.PackageDescription.html#hasLibs"><span class="hs-identifier hs-var hs-var">hasLibs</span></a></span></span><span> </span><span id="local-6989586621679676469"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676469"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Library -&gt; Bool) -&gt; [Library] -&gt; Bool
forall (t :: * -&gt; *) a. Foldable t =&gt; (a -&gt; Bool) -&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#any"><span class="hs-identifier hs-var">any</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">BuildInfo -&gt; Bool
</span><a href="Distribution.Types.BuildInfo.html#buildable"><span class="hs-identifier hs-var hs-var">buildable</span></a></span><span> </span><span class="annot"><span class="annottext">(BuildInfo -&gt; Bool) -&gt; (Library -&gt; BuildInfo) -&gt; Library -&gt; Bool
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Library -&gt; BuildInfo
</span><a href="Distribution.Types.Library.html#libBuildInfo"><span class="hs-identifier hs-var hs-var">libBuildInfo</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PackageDescription -&gt; [Library]
</span><a href="Distribution.Types.PackageDescription.html#allLibraries"><span class="hs-identifier hs-var">allLibraries</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676469"><span class="hs-identifier hs-var">p</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-244"></span><span>
</span><span id="line-245"></span><span class="annot"><a href="Distribution.Types.PackageDescription.html#allLibraries"><span class="hs-identifier hs-type">allLibraries</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Types.Library.html#Library"><span class="hs-identifier hs-type">Library</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-246"></span><span id="allLibraries"><span class="annot"><span class="annottext">allLibraries :: PackageDescription -&gt; [Library]
</span><a href="Distribution.Types.PackageDescription.html#allLibraries"><span class="hs-identifier hs-var hs-var">allLibraries</span></a></span></span><span> </span><span id="local-6989586621679676467"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676467"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe Library -&gt; [Library]
forall a. Maybe a -&gt; [a]
</span><a href="../../base/src/Data.Maybe.html#maybeToList"><span class="hs-identifier hs-var">maybeToList</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PackageDescription -&gt; Maybe Library
</span><a href="Distribution.Types.PackageDescription.html#library"><span class="hs-identifier hs-var hs-var">library</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676467"><span class="hs-identifier hs-var">p</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[Library] -&gt; [Library] -&gt; [Library]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; [Library]
</span><a href="Distribution.Types.PackageDescription.html#subLibraries"><span class="hs-identifier hs-var hs-var">subLibraries</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676467"><span class="hs-identifier hs-var">p</span></a></span><span>
</span><span id="line-247"></span><span>
</span><span id="line-248"></span><span class="hs-comment">-- | If the package description has a buildable library section,</span><span>
</span><span id="line-249"></span><span class="hs-comment">-- call the given function with the library build info as argument.</span><span>
</span><span id="line-250"></span><span class="hs-comment">-- You probably want 'withLibLBI' if you have a 'LocalBuildInfo',</span><span>
</span><span id="line-251"></span><span class="hs-comment">-- see the note in</span><span>
</span><span id="line-252"></span><span class="hs-comment">-- &quot;Distribution.Types.ComponentRequestedSpec#buildable_vs_enabled_components&quot;</span><span>
</span><span id="line-253"></span><span class="hs-comment">-- for more information.</span><span>
</span><span id="line-254"></span><span class="annot"><a href="Distribution.Types.PackageDescription.html#withLib"><span class="hs-identifier hs-type">withLib</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Types.Library.html#Library"><span class="hs-identifier hs-type">Library</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-255"></span><span id="withLib"><span class="annot"><span class="annottext">withLib :: PackageDescription -&gt; (Library -&gt; IO ()) -&gt; IO ()
</span><a href="Distribution.Types.PackageDescription.html#withLib"><span class="hs-identifier hs-var hs-var">withLib</span></a></span></span><span> </span><span id="local-6989586621679676465"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676465"><span class="hs-identifier hs-var">pkg_descr</span></a></span></span><span> </span><span id="local-6989586621679676464"><span class="annot"><span class="annottext">Library -&gt; IO ()
</span><a href="#local-6989586621679676464"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-256"></span><span>   </span><span class="annot"><span class="annottext">[IO ()] -&gt; IO ()
forall (t :: * -&gt; *) (m :: * -&gt; *) a.
(Foldable t, Monad m) =&gt;
t (m a) -&gt; m ()
</span><a href="../../base/src/Data.Foldable.html#sequence_"><span class="hs-identifier hs-var">sequence_</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">Library -&gt; IO ()
</span><a href="#local-6989586621679676464"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">Library
</span><a href="#local-6989586621679676462"><span class="hs-identifier hs-var">lib</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span id="local-6989586621679676462"><span class="annot"><span class="annottext">Library
</span><a href="#local-6989586621679676462"><span class="hs-identifier hs-var">lib</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; [Library]
</span><a href="Distribution.Types.PackageDescription.html#allLibraries"><span class="hs-identifier hs-var">allLibraries</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676465"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">BuildInfo -&gt; Bool
</span><a href="Distribution.Types.BuildInfo.html#buildable"><span class="hs-identifier hs-var hs-var">buildable</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Library -&gt; BuildInfo
</span><a href="Distribution.Types.Library.html#libBuildInfo"><span class="hs-identifier hs-var hs-var">libBuildInfo</span></a></span><span> </span><span class="annot"><span class="annottext">Library
</span><a href="#local-6989586621679676462"><span class="hs-identifier hs-var">lib</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-257"></span><span>
</span><span id="line-258"></span><span class="hs-comment">-- ---------------------------------------------------------------------------</span><span>
</span><span id="line-259"></span><span class="hs-comment">-- The Executable type</span><span>
</span><span id="line-260"></span><span>
</span><span id="line-261"></span><span class="hs-comment">-- |does this package have any executables?</span><span>
</span><span id="line-262"></span><span class="annot"><a href="Distribution.Types.PackageDescription.html#hasExes"><span class="hs-identifier hs-type">hasExes</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-263"></span><span id="hasExes"><span class="annot"><span class="annottext">hasExes :: PackageDescription -&gt; Bool
</span><a href="Distribution.Types.PackageDescription.html#hasExes"><span class="hs-identifier hs-var hs-var">hasExes</span></a></span></span><span> </span><span id="local-6989586621679676461"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676461"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Executable -&gt; Bool) -&gt; [Executable] -&gt; Bool
forall (t :: * -&gt; *) a. Foldable t =&gt; (a -&gt; Bool) -&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#any"><span class="hs-identifier hs-var">any</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">BuildInfo -&gt; Bool
</span><a href="Distribution.Types.BuildInfo.html#buildable"><span class="hs-identifier hs-var hs-var">buildable</span></a></span><span> </span><span class="annot"><span class="annottext">(BuildInfo -&gt; Bool)
-&gt; (Executable -&gt; BuildInfo) -&gt; Executable -&gt; Bool
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Executable -&gt; BuildInfo
</span><a href="Distribution.Types.Executable.html#buildInfo"><span class="hs-identifier hs-var hs-var">buildInfo</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PackageDescription -&gt; [Executable]
</span><a href="Distribution.Types.PackageDescription.html#executables"><span class="hs-identifier hs-var hs-var">executables</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676461"><span class="hs-identifier hs-var">p</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-264"></span><span>
</span><span id="line-265"></span><span class="hs-comment">-- | Perform the action on each buildable 'Executable' in the package</span><span>
</span><span id="line-266"></span><span class="hs-comment">-- description.  You probably want 'withExeLBI' if you have a</span><span>
</span><span id="line-267"></span><span class="hs-comment">-- 'LocalBuildInfo', see the note in</span><span>
</span><span id="line-268"></span><span class="hs-comment">-- &quot;Distribution.Types.ComponentRequestedSpec#buildable_vs_enabled_components&quot;</span><span>
</span><span id="line-269"></span><span class="hs-comment">-- for more information.</span><span>
</span><span id="line-270"></span><span class="annot"><a href="Distribution.Types.PackageDescription.html#withExe"><span class="hs-identifier hs-type">withExe</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Types.Executable.html#Executable"><span class="hs-identifier hs-type">Executable</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-271"></span><span id="withExe"><span class="annot"><span class="annottext">withExe :: PackageDescription -&gt; (Executable -&gt; IO ()) -&gt; IO ()
</span><a href="Distribution.Types.PackageDescription.html#withExe"><span class="hs-identifier hs-var hs-var">withExe</span></a></span></span><span> </span><span id="local-6989586621679676459"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676459"><span class="hs-identifier hs-var">pkg_descr</span></a></span></span><span> </span><span id="local-6989586621679676458"><span class="annot"><span class="annottext">Executable -&gt; IO ()
</span><a href="#local-6989586621679676458"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-272"></span><span>  </span><span class="annot"><span class="annottext">[IO ()] -&gt; IO ()
forall (t :: * -&gt; *) (m :: * -&gt; *) a.
(Foldable t, Monad m) =&gt;
t (m a) -&gt; m ()
</span><a href="../../base/src/Data.Foldable.html#sequence_"><span class="hs-identifier hs-var">sequence_</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">Executable -&gt; IO ()
</span><a href="#local-6989586621679676458"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">Executable
</span><a href="#local-6989586621679676457"><span class="hs-identifier hs-var">exe</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span id="local-6989586621679676457"><span class="annot"><span class="annottext">Executable
</span><a href="#local-6989586621679676457"><span class="hs-identifier hs-var">exe</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; [Executable]
</span><a href="Distribution.Types.PackageDescription.html#executables"><span class="hs-identifier hs-var hs-var">executables</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676459"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">BuildInfo -&gt; Bool
</span><a href="Distribution.Types.BuildInfo.html#buildable"><span class="hs-identifier hs-var hs-var">buildable</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Executable -&gt; BuildInfo
</span><a href="Distribution.Types.Executable.html#buildInfo"><span class="hs-identifier hs-var hs-var">buildInfo</span></a></span><span> </span><span class="annot"><span class="annottext">Executable
</span><a href="#local-6989586621679676457"><span class="hs-identifier hs-var">exe</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-273"></span><span>
</span><span id="line-274"></span><span class="hs-comment">-- ---------------------------------------------------------------------------</span><span>
</span><span id="line-275"></span><span class="hs-comment">-- The TestSuite type</span><span>
</span><span id="line-276"></span><span>
</span><span id="line-277"></span><span class="hs-comment">-- | Does this package have any test suites?</span><span>
</span><span id="line-278"></span><span class="annot"><a href="Distribution.Types.PackageDescription.html#hasTests"><span class="hs-identifier hs-type">hasTests</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-279"></span><span id="hasTests"><span class="annot"><span class="annottext">hasTests :: PackageDescription -&gt; Bool
</span><a href="Distribution.Types.PackageDescription.html#hasTests"><span class="hs-identifier hs-var hs-var">hasTests</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(TestSuite -&gt; Bool) -&gt; [TestSuite] -&gt; Bool
forall (t :: * -&gt; *) a. Foldable t =&gt; (a -&gt; Bool) -&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#any"><span class="hs-identifier hs-var">any</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">BuildInfo -&gt; Bool
</span><a href="Distribution.Types.BuildInfo.html#buildable"><span class="hs-identifier hs-var hs-var">buildable</span></a></span><span> </span><span class="annot"><span class="annottext">(BuildInfo -&gt; Bool)
-&gt; (TestSuite -&gt; BuildInfo) -&gt; TestSuite -&gt; Bool
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">TestSuite -&gt; BuildInfo
</span><a href="Distribution.Types.TestSuite.html#testBuildInfo"><span class="hs-identifier hs-var hs-var">testBuildInfo</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">([TestSuite] -&gt; Bool)
-&gt; (PackageDescription -&gt; [TestSuite])
-&gt; PackageDescription
-&gt; Bool
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; [TestSuite]
</span><a href="Distribution.Types.PackageDescription.html#testSuites"><span class="hs-identifier hs-var hs-var">testSuites</span></a></span><span>
</span><span id="line-280"></span><span>
</span><span id="line-281"></span><span class="hs-comment">-- | Perform an action on each buildable 'TestSuite' in a package.</span><span>
</span><span id="line-282"></span><span class="hs-comment">-- You probably want 'withTestLBI' if you have a 'LocalBuildInfo', see the note in</span><span>
</span><span id="line-283"></span><span class="hs-comment">-- &quot;Distribution.Types.ComponentRequestedSpec#buildable_vs_enabled_components&quot;</span><span>
</span><span id="line-284"></span><span class="hs-comment">-- for more information.</span><span>
</span><span id="line-285"></span><span>
</span><span id="line-286"></span><span class="annot"><a href="Distribution.Types.PackageDescription.html#withTest"><span class="hs-identifier hs-type">withTest</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Types.TestSuite.html#TestSuite"><span class="hs-identifier hs-type">TestSuite</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-287"></span><span id="withTest"><span class="annot"><span class="annottext">withTest :: PackageDescription -&gt; (TestSuite -&gt; IO ()) -&gt; IO ()
</span><a href="Distribution.Types.PackageDescription.html#withTest"><span class="hs-identifier hs-var hs-var">withTest</span></a></span></span><span> </span><span id="local-6989586621679676455"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676455"><span class="hs-identifier hs-var">pkg_descr</span></a></span></span><span> </span><span id="local-6989586621679676454"><span class="annot"><span class="annottext">TestSuite -&gt; IO ()
</span><a href="#local-6989586621679676454"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-288"></span><span>    </span><span class="annot"><span class="annottext">[IO ()] -&gt; IO ()
forall (t :: * -&gt; *) (m :: * -&gt; *) a.
(Foldable t, Monad m) =&gt;
t (m a) -&gt; m ()
</span><a href="../../base/src/Data.Foldable.html#sequence_"><span class="hs-identifier hs-var">sequence_</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">TestSuite -&gt; IO ()
</span><a href="#local-6989586621679676454"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">TestSuite
</span><a href="#local-6989586621679676453"><span class="hs-identifier hs-var">test</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span id="local-6989586621679676453"><span class="annot"><span class="annottext">TestSuite
</span><a href="#local-6989586621679676453"><span class="hs-identifier hs-var">test</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; [TestSuite]
</span><a href="Distribution.Types.PackageDescription.html#testSuites"><span class="hs-identifier hs-var hs-var">testSuites</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676455"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">BuildInfo -&gt; Bool
</span><a href="Distribution.Types.BuildInfo.html#buildable"><span class="hs-identifier hs-var hs-var">buildable</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">TestSuite -&gt; BuildInfo
</span><a href="Distribution.Types.TestSuite.html#testBuildInfo"><span class="hs-identifier hs-var hs-var">testBuildInfo</span></a></span><span> </span><span class="annot"><span class="annottext">TestSuite
</span><a href="#local-6989586621679676453"><span class="hs-identifier hs-var">test</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-289"></span><span>
</span><span id="line-290"></span><span class="hs-comment">-- ---------------------------------------------------------------------------</span><span>
</span><span id="line-291"></span><span class="hs-comment">-- The Benchmark type</span><span>
</span><span id="line-292"></span><span>
</span><span id="line-293"></span><span class="hs-comment">-- | Does this package have any benchmarks?</span><span>
</span><span id="line-294"></span><span class="annot"><a href="Distribution.Types.PackageDescription.html#hasBenchmarks"><span class="hs-identifier hs-type">hasBenchmarks</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-295"></span><span id="hasBenchmarks"><span class="annot"><span class="annottext">hasBenchmarks :: PackageDescription -&gt; Bool
</span><a href="Distribution.Types.PackageDescription.html#hasBenchmarks"><span class="hs-identifier hs-var hs-var">hasBenchmarks</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Benchmark -&gt; Bool) -&gt; [Benchmark] -&gt; Bool
forall (t :: * -&gt; *) a. Foldable t =&gt; (a -&gt; Bool) -&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#any"><span class="hs-identifier hs-var">any</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">BuildInfo -&gt; Bool
</span><a href="Distribution.Types.BuildInfo.html#buildable"><span class="hs-identifier hs-var hs-var">buildable</span></a></span><span> </span><span class="annot"><span class="annottext">(BuildInfo -&gt; Bool)
-&gt; (Benchmark -&gt; BuildInfo) -&gt; Benchmark -&gt; Bool
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Benchmark -&gt; BuildInfo
</span><a href="Distribution.Types.Benchmark.html#benchmarkBuildInfo"><span class="hs-identifier hs-var hs-var">benchmarkBuildInfo</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">([Benchmark] -&gt; Bool)
-&gt; (PackageDescription -&gt; [Benchmark])
-&gt; PackageDescription
-&gt; Bool
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; [Benchmark]
</span><a href="Distribution.Types.PackageDescription.html#benchmarks"><span class="hs-identifier hs-var hs-var">benchmarks</span></a></span><span>
</span><span id="line-296"></span><span>
</span><span id="line-297"></span><span class="hs-comment">-- | Perform an action on each buildable 'Benchmark' in a package.</span><span>
</span><span id="line-298"></span><span class="hs-comment">-- You probably want 'withBenchLBI' if you have a 'LocalBuildInfo', see the note in</span><span>
</span><span id="line-299"></span><span class="hs-comment">-- &quot;Distribution.Types.ComponentRequestedSpec#buildable_vs_enabled_components&quot;</span><span>
</span><span id="line-300"></span><span class="hs-comment">-- for more information.</span><span>
</span><span id="line-301"></span><span>
</span><span id="line-302"></span><span class="annot"><a href="Distribution.Types.PackageDescription.html#withBenchmark"><span class="hs-identifier hs-type">withBenchmark</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Types.Benchmark.html#Benchmark"><span class="hs-identifier hs-type">Benchmark</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-303"></span><span id="withBenchmark"><span class="annot"><span class="annottext">withBenchmark :: PackageDescription -&gt; (Benchmark -&gt; IO ()) -&gt; IO ()
</span><a href="Distribution.Types.PackageDescription.html#withBenchmark"><span class="hs-identifier hs-var hs-var">withBenchmark</span></a></span></span><span> </span><span id="local-6989586621679676451"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676451"><span class="hs-identifier hs-var">pkg_descr</span></a></span></span><span> </span><span id="local-6989586621679676450"><span class="annot"><span class="annottext">Benchmark -&gt; IO ()
</span><a href="#local-6989586621679676450"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-304"></span><span>    </span><span class="annot"><span class="annottext">[IO ()] -&gt; IO ()
forall (t :: * -&gt; *) (m :: * -&gt; *) a.
(Foldable t, Monad m) =&gt;
t (m a) -&gt; m ()
</span><a href="../../base/src/Data.Foldable.html#sequence_"><span class="hs-identifier hs-var">sequence_</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">Benchmark -&gt; IO ()
</span><a href="#local-6989586621679676450"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">Benchmark
</span><a href="#local-6989586621679676449"><span class="hs-identifier hs-var">bench</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span id="local-6989586621679676449"><span class="annot"><span class="annottext">Benchmark
</span><a href="#local-6989586621679676449"><span class="hs-identifier hs-var">bench</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; [Benchmark]
</span><a href="Distribution.Types.PackageDescription.html#benchmarks"><span class="hs-identifier hs-var hs-var">benchmarks</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676451"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">BuildInfo -&gt; Bool
</span><a href="Distribution.Types.BuildInfo.html#buildable"><span class="hs-identifier hs-var hs-var">buildable</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Benchmark -&gt; BuildInfo
</span><a href="Distribution.Types.Benchmark.html#benchmarkBuildInfo"><span class="hs-identifier hs-var hs-var">benchmarkBuildInfo</span></a></span><span> </span><span class="annot"><span class="annottext">Benchmark
</span><a href="#local-6989586621679676449"><span class="hs-identifier hs-var">bench</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-305"></span><span>
</span><span id="line-306"></span><span class="hs-comment">-- ---------------------------------------------------------------------------</span><span>
</span><span id="line-307"></span><span class="hs-comment">-- The ForeignLib type</span><span>
</span><span id="line-308"></span><span>
</span><span id="line-309"></span><span class="hs-comment">-- | Does this package have any foreign libraries?</span><span>
</span><span id="line-310"></span><span class="annot"><a href="Distribution.Types.PackageDescription.html#hasForeignLibs"><span class="hs-identifier hs-type">hasForeignLibs</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-311"></span><span id="hasForeignLibs"><span class="annot"><span class="annottext">hasForeignLibs :: PackageDescription -&gt; Bool
</span><a href="Distribution.Types.PackageDescription.html#hasForeignLibs"><span class="hs-identifier hs-var hs-var">hasForeignLibs</span></a></span></span><span> </span><span id="local-6989586621679676448"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676448"><span class="hs-identifier hs-var">p</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(ForeignLib -&gt; Bool) -&gt; [ForeignLib] -&gt; Bool
forall (t :: * -&gt; *) a. Foldable t =&gt; (a -&gt; Bool) -&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#any"><span class="hs-identifier hs-var">any</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">BuildInfo -&gt; Bool
</span><a href="Distribution.Types.BuildInfo.html#buildable"><span class="hs-identifier hs-var hs-var">buildable</span></a></span><span> </span><span class="annot"><span class="annottext">(BuildInfo -&gt; Bool)
-&gt; (ForeignLib -&gt; BuildInfo) -&gt; ForeignLib -&gt; Bool
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">ForeignLib -&gt; BuildInfo
</span><a href="Distribution.Types.ForeignLib.html#foreignLibBuildInfo"><span class="hs-identifier hs-var hs-var">foreignLibBuildInfo</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PackageDescription -&gt; [ForeignLib]
</span><a href="Distribution.Types.PackageDescription.html#foreignLibs"><span class="hs-identifier hs-var hs-var">foreignLibs</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676448"><span class="hs-identifier hs-var">p</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-312"></span><span>
</span><span id="line-313"></span><span class="hs-comment">-- | Perform the action on each buildable 'ForeignLib' in the package</span><span>
</span><span id="line-314"></span><span class="hs-comment">-- description.</span><span>
</span><span id="line-315"></span><span class="annot"><a href="Distribution.Types.PackageDescription.html#withForeignLib"><span class="hs-identifier hs-type">withForeignLib</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Types.ForeignLib.html#ForeignLib"><span class="hs-identifier hs-type">ForeignLib</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-316"></span><span id="withForeignLib"><span class="annot"><span class="annottext">withForeignLib :: PackageDescription -&gt; (ForeignLib -&gt; IO ()) -&gt; IO ()
</span><a href="Distribution.Types.PackageDescription.html#withForeignLib"><span class="hs-identifier hs-var hs-var">withForeignLib</span></a></span></span><span> </span><span id="local-6989586621679676446"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676446"><span class="hs-identifier hs-var">pkg_descr</span></a></span></span><span> </span><span id="local-6989586621679676445"><span class="annot"><span class="annottext">ForeignLib -&gt; IO ()
</span><a href="#local-6989586621679676445"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-317"></span><span>  </span><span class="annot"><span class="annottext">[IO ()] -&gt; IO ()
forall (t :: * -&gt; *) (m :: * -&gt; *) a.
(Foldable t, Monad m) =&gt;
t (m a) -&gt; m ()
</span><a href="../../base/src/Data.Foldable.html#sequence_"><span class="hs-identifier hs-var">sequence_</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">ForeignLib -&gt; IO ()
</span><a href="#local-6989586621679676445"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">ForeignLib
</span><a href="#local-6989586621679676444"><span class="hs-identifier hs-var">flib</span></a></span><span>
</span><span id="line-318"></span><span>            </span><span class="hs-glyph">|</span><span> </span><span id="local-6989586621679676444"><span class="annot"><span class="annottext">ForeignLib
</span><a href="#local-6989586621679676444"><span class="hs-identifier hs-var">flib</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; [ForeignLib]
</span><a href="Distribution.Types.PackageDescription.html#foreignLibs"><span class="hs-identifier hs-var hs-var">foreignLibs</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676446"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span>
</span><span id="line-319"></span><span>            </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">BuildInfo -&gt; Bool
</span><a href="Distribution.Types.BuildInfo.html#buildable"><span class="hs-identifier hs-var hs-var">buildable</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ForeignLib -&gt; BuildInfo
</span><a href="Distribution.Types.ForeignLib.html#foreignLibBuildInfo"><span class="hs-identifier hs-var hs-var">foreignLibBuildInfo</span></a></span><span> </span><span class="annot"><span class="annottext">ForeignLib
</span><a href="#local-6989586621679676444"><span class="hs-identifier hs-var">flib</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-320"></span><span>            </span><span class="hs-special">]</span><span>
</span><span id="line-321"></span><span>
</span><span id="line-322"></span><span class="hs-comment">-- ---------------------------------------------------------------------------</span><span>
</span><span id="line-323"></span><span class="hs-comment">-- The BuildInfo type</span><span>
</span><span id="line-324"></span><span>
</span><span id="line-325"></span><span class="hs-comment">-- | All 'BuildInfo' in the 'PackageDescription':</span><span>
</span><span id="line-326"></span><span class="hs-comment">-- libraries, executables, test-suites and benchmarks.</span><span>
</span><span id="line-327"></span><span class="hs-comment">--</span><span>
</span><span id="line-328"></span><span class="hs-comment">-- Useful for implementing package checks.</span><span>
</span><span id="line-329"></span><span class="annot"><a href="Distribution.Types.PackageDescription.html#allBuildInfo"><span class="hs-identifier hs-type">allBuildInfo</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Types.BuildInfo.html#BuildInfo"><span class="hs-identifier hs-type">BuildInfo</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-330"></span><span id="allBuildInfo"><span class="annot"><span class="annottext">allBuildInfo :: PackageDescription -&gt; [BuildInfo]
</span><a href="Distribution.Types.PackageDescription.html#allBuildInfo"><span class="hs-identifier hs-var hs-var">allBuildInfo</span></a></span></span><span> </span><span id="local-6989586621679676443"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676443"><span class="hs-identifier hs-var">pkg_descr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">BuildInfo
</span><a href="#local-6989586621679676442"><span class="hs-identifier hs-var">bi</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span id="local-6989586621679676441"><span class="annot"><span class="annottext">Library
</span><a href="#local-6989586621679676441"><span class="hs-identifier hs-var">lib</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; [Library]
</span><a href="Distribution.Types.PackageDescription.html#allLibraries"><span class="hs-identifier hs-var">allLibraries</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676443"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span>
</span><span id="line-331"></span><span>                               </span><span class="hs-special">,</span><span> </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679676442"><span class="annot"><span class="annottext">bi :: BuildInfo
</span><a href="#local-6989586621679676442"><span class="hs-identifier hs-var hs-var">bi</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Library -&gt; BuildInfo
</span><a href="Distribution.Types.Library.html#libBuildInfo"><span class="hs-identifier hs-var hs-var">libBuildInfo</span></a></span><span> </span><span class="annot"><span class="annottext">Library
</span><a href="#local-6989586621679676441"><span class="hs-identifier hs-var">lib</span></a></span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-332"></span><span>                       </span><span class="annot"><span class="annottext">[BuildInfo] -&gt; [BuildInfo] -&gt; [BuildInfo]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">BuildInfo
</span><a href="#local-6989586621679676440"><span class="hs-identifier hs-var">bi</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span id="local-6989586621679676439"><span class="annot"><span class="annottext">ForeignLib
</span><a href="#local-6989586621679676439"><span class="hs-identifier hs-var">flib</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; [ForeignLib]
</span><a href="Distribution.Types.PackageDescription.html#foreignLibs"><span class="hs-identifier hs-var hs-var">foreignLibs</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676443"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span>
</span><span id="line-333"></span><span>                               </span><span class="hs-special">,</span><span> </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679676440"><span class="annot"><span class="annottext">bi :: BuildInfo
</span><a href="#local-6989586621679676440"><span class="hs-identifier hs-var hs-var">bi</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ForeignLib -&gt; BuildInfo
</span><a href="Distribution.Types.ForeignLib.html#foreignLibBuildInfo"><span class="hs-identifier hs-var hs-var">foreignLibBuildInfo</span></a></span><span> </span><span class="annot"><span class="annottext">ForeignLib
</span><a href="#local-6989586621679676439"><span class="hs-identifier hs-var">flib</span></a></span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-334"></span><span>                       </span><span class="annot"><span class="annottext">[BuildInfo] -&gt; [BuildInfo] -&gt; [BuildInfo]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">BuildInfo
</span><a href="#local-6989586621679676438"><span class="hs-identifier hs-var">bi</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span id="local-6989586621679676437"><span class="annot"><span class="annottext">Executable
</span><a href="#local-6989586621679676437"><span class="hs-identifier hs-var">exe</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; [Executable]
</span><a href="Distribution.Types.PackageDescription.html#executables"><span class="hs-identifier hs-var hs-var">executables</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676443"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span>
</span><span id="line-335"></span><span>                               </span><span class="hs-special">,</span><span> </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679676438"><span class="annot"><span class="annottext">bi :: BuildInfo
</span><a href="#local-6989586621679676438"><span class="hs-identifier hs-var hs-var">bi</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Executable -&gt; BuildInfo
</span><a href="Distribution.Types.Executable.html#buildInfo"><span class="hs-identifier hs-var hs-var">buildInfo</span></a></span><span> </span><span class="annot"><span class="annottext">Executable
</span><a href="#local-6989586621679676437"><span class="hs-identifier hs-var">exe</span></a></span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-336"></span><span>                       </span><span class="annot"><span class="annottext">[BuildInfo] -&gt; [BuildInfo] -&gt; [BuildInfo]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">BuildInfo
</span><a href="#local-6989586621679676436"><span class="hs-identifier hs-var">bi</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span id="local-6989586621679676435"><span class="annot"><span class="annottext">TestSuite
</span><a href="#local-6989586621679676435"><span class="hs-identifier hs-var">tst</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; [TestSuite]
</span><a href="Distribution.Types.PackageDescription.html#testSuites"><span class="hs-identifier hs-var hs-var">testSuites</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676443"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span>
</span><span id="line-337"></span><span>                               </span><span class="hs-special">,</span><span> </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679676436"><span class="annot"><span class="annottext">bi :: BuildInfo
</span><a href="#local-6989586621679676436"><span class="hs-identifier hs-var hs-var">bi</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">TestSuite -&gt; BuildInfo
</span><a href="Distribution.Types.TestSuite.html#testBuildInfo"><span class="hs-identifier hs-var hs-var">testBuildInfo</span></a></span><span> </span><span class="annot"><span class="annottext">TestSuite
</span><a href="#local-6989586621679676435"><span class="hs-identifier hs-var">tst</span></a></span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-338"></span><span>                       </span><span class="annot"><span class="annottext">[BuildInfo] -&gt; [BuildInfo] -&gt; [BuildInfo]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">BuildInfo
</span><a href="#local-6989586621679676434"><span class="hs-identifier hs-var">bi</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span id="local-6989586621679676433"><span class="annot"><span class="annottext">Benchmark
</span><a href="#local-6989586621679676433"><span class="hs-identifier hs-var">tst</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; [Benchmark]
</span><a href="Distribution.Types.PackageDescription.html#benchmarks"><span class="hs-identifier hs-var hs-var">benchmarks</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676443"><span class="hs-identifier hs-var">pkg_descr</span></a></span><span>
</span><span id="line-339"></span><span>                               </span><span class="hs-special">,</span><span> </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679676434"><span class="annot"><span class="annottext">bi :: BuildInfo
</span><a href="#local-6989586621679676434"><span class="hs-identifier hs-var hs-var">bi</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Benchmark -&gt; BuildInfo
</span><a href="Distribution.Types.Benchmark.html#benchmarkBuildInfo"><span class="hs-identifier hs-var hs-var">benchmarkBuildInfo</span></a></span><span> </span><span class="annot"><span class="annottext">Benchmark
</span><a href="#local-6989586621679676433"><span class="hs-identifier hs-var">tst</span></a></span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-340"></span><span>
</span><span id="line-341"></span><span class="hs-comment">-- | Return all of the 'BuildInfo's of enabled components, i.e., all of</span><span>
</span><span id="line-342"></span><span class="hs-comment">-- the ones that would be built if you run @./Setup build@.</span><span>
</span><span id="line-343"></span><span class="annot"><a href="Distribution.Types.PackageDescription.html#enabledBuildInfos"><span class="hs-identifier hs-type">enabledBuildInfos</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.ComponentRequestedSpec.html#ComponentRequestedSpec"><span class="hs-identifier hs-type">ComponentRequestedSpec</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Types.BuildInfo.html#BuildInfo"><span class="hs-identifier hs-type">BuildInfo</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-344"></span><span id="enabledBuildInfos"><span class="annot"><span class="annottext">enabledBuildInfos :: PackageDescription -&gt; ComponentRequestedSpec -&gt; [BuildInfo]
</span><a href="Distribution.Types.PackageDescription.html#enabledBuildInfos"><span class="hs-identifier hs-var hs-var">enabledBuildInfos</span></a></span></span><span> </span><span id="local-6989586621679676432"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676432"><span class="hs-identifier hs-var">pkg</span></a></span></span><span> </span><span id="local-6989586621679676431"><span class="annot"><span class="annottext">ComponentRequestedSpec
</span><a href="#local-6989586621679676431"><span class="hs-identifier hs-var">enabled</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-345"></span><span>    </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">Component -&gt; BuildInfo
</span><a href="Distribution.Types.Component.html#componentBuildInfo"><span class="hs-identifier hs-var">componentBuildInfo</span></a></span><span> </span><span class="annot"><span class="annottext">Component
</span><a href="#local-6989586621679676429"><span class="hs-identifier hs-var">comp</span></a></span><span>
</span><span id="line-346"></span><span>    </span><span class="hs-glyph">|</span><span> </span><span id="local-6989586621679676429"><span class="annot"><span class="annottext">Component
</span><a href="#local-6989586621679676429"><span class="hs-identifier hs-var">comp</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; ComponentRequestedSpec -&gt; [Component]
</span><a href="Distribution.Types.PackageDescription.html#enabledComponents"><span class="hs-identifier hs-var">enabledComponents</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676432"><span class="hs-identifier hs-var">pkg</span></a></span><span> </span><span class="annot"><span class="annottext">ComponentRequestedSpec
</span><a href="#local-6989586621679676431"><span class="hs-identifier hs-var">enabled</span></a></span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-347"></span><span>
</span><span id="line-348"></span><span>
</span><span id="line-349"></span><span class="hs-comment">-- ------------------------------------------------------------</span><span>
</span><span id="line-350"></span><span class="hs-comment">-- * Utils</span><span>
</span><span id="line-351"></span><span class="hs-comment">-- ------------------------------------------------------------</span><span>
</span><span id="line-352"></span><span>
</span><span id="line-353"></span><span class="hs-comment">-- | Get the combined build-depends entries of all components.</span><span>
</span><span id="line-354"></span><span class="annot"><a href="Distribution.Types.PackageDescription.html#allBuildDepends"><span class="hs-identifier hs-type">allBuildDepends</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Types.Dependency.html#Dependency"><span class="hs-identifier hs-type">Dependency</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-355"></span><span id="allBuildDepends"><span class="annot"><span class="annottext">allBuildDepends :: PackageDescription -&gt; [Dependency]
</span><a href="Distribution.Types.PackageDescription.html#allBuildDepends"><span class="hs-identifier hs-var hs-var">allBuildDepends</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">BuildInfo -&gt; [Dependency]
</span><a href="Distribution.Types.BuildInfo.html#targetBuildDepends"><span class="hs-identifier hs-var hs-var">targetBuildDepends</span></a></span><span> </span><span class="annot"><span class="annottext">(BuildInfo -&gt; [Dependency])
-&gt; (PackageDescription -&gt; [BuildInfo])
-&gt; PackageDescription
-&gt; [Dependency]
forall (m :: * -&gt; *) b c a.
Monad m =&gt;
(b -&gt; m c) -&gt; (a -&gt; m b) -&gt; a -&gt; m c
</span><a href="../../base/src/Control.Monad.html#%3C%3D%3C"><span class="hs-operator hs-var">&lt;=&lt;</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; [BuildInfo]
</span><a href="Distribution.Types.PackageDescription.html#allBuildInfo"><span class="hs-identifier hs-var">allBuildInfo</span></a></span><span>
</span><span id="line-356"></span><span>
</span><span id="line-357"></span><span class="hs-comment">-- | Get the combined build-depends entries of all enabled components, per the</span><span>
</span><span id="line-358"></span><span class="hs-comment">-- given request spec.</span><span>
</span><span id="line-359"></span><span class="annot"><a href="Distribution.Types.PackageDescription.html#enabledBuildDepends"><span class="hs-identifier hs-type">enabledBuildDepends</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.ComponentRequestedSpec.html#ComponentRequestedSpec"><span class="hs-identifier hs-type">ComponentRequestedSpec</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Types.Dependency.html#Dependency"><span class="hs-identifier hs-type">Dependency</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-360"></span><span id="enabledBuildDepends"><span class="annot"><span class="annottext">enabledBuildDepends :: PackageDescription -&gt; ComponentRequestedSpec -&gt; [Dependency]
</span><a href="Distribution.Types.PackageDescription.html#enabledBuildDepends"><span class="hs-identifier hs-var hs-var">enabledBuildDepends</span></a></span></span><span> </span><span id="local-6989586621679676427"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676427"><span class="hs-identifier hs-var">spec</span></a></span></span><span> </span><span id="local-6989586621679676426"><span class="annot"><span class="annottext">ComponentRequestedSpec
</span><a href="#local-6989586621679676426"><span class="hs-identifier hs-var">pd</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">BuildInfo -&gt; [Dependency]
</span><a href="Distribution.Types.BuildInfo.html#targetBuildDepends"><span class="hs-identifier hs-var hs-var">targetBuildDepends</span></a></span><span> </span><span class="annot"><span class="annottext">(BuildInfo -&gt; [Dependency]) -&gt; [BuildInfo] -&gt; [Dependency]
forall (m :: * -&gt; *) a b. Monad m =&gt; (a -&gt; m b) -&gt; m a -&gt; m b
</span><a href="../../base/src/GHC.Base.html#%3D%3C%3C"><span class="hs-operator hs-var">=&lt;&lt;</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; ComponentRequestedSpec -&gt; [BuildInfo]
</span><a href="Distribution.Types.PackageDescription.html#enabledBuildInfos"><span class="hs-identifier hs-var">enabledBuildInfos</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676427"><span class="hs-identifier hs-var">spec</span></a></span><span> </span><span class="annot"><span class="annottext">ComponentRequestedSpec
</span><a href="#local-6989586621679676426"><span class="hs-identifier hs-var">pd</span></a></span><span>
</span><span id="line-361"></span><span>
</span><span id="line-362"></span><span>
</span><span id="line-363"></span><span class="annot"><a href="Distribution.Types.PackageDescription.html#updatePackageDescription"><span class="hs-identifier hs-type">updatePackageDescription</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.HookedBuildInfo.html#HookedBuildInfo"><span class="hs-identifier hs-type">HookedBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span>
</span><span id="line-364"></span><span id="updatePackageDescription"><span class="annot"><span class="annottext">updatePackageDescription :: HookedBuildInfo -&gt; PackageDescription -&gt; PackageDescription
</span><a href="Distribution.Types.PackageDescription.html#updatePackageDescription"><span class="hs-identifier hs-var hs-var">updatePackageDescription</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621679676424"><span class="annot"><span class="annottext">Maybe BuildInfo
</span><a href="#local-6989586621679676424"><span class="hs-identifier hs-var">mb_lib_bi</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679676423"><span class="annot"><span class="annottext">[(UnqualComponentName, BuildInfo)]
</span><a href="#local-6989586621679676423"><span class="hs-identifier hs-var">exe_bi</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621679676422"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676422"><span class="hs-identifier hs-var">p</span></a></span></span><span>
</span><span id="line-365"></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676422"><span class="hs-identifier hs-var">p</span></a></span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">executables :: [Executable]
</span><a href="Distribution.Types.PackageDescription.html#executables"><span class="hs-identifier hs-var">executables</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[(UnqualComponentName, BuildInfo)] -&gt; [Executable] -&gt; [Executable]
</span><a href="#local-6989586621679676421"><span class="hs-identifier hs-var">updateExecutables</span></a></span><span> </span><span class="annot"><span class="annottext">[(UnqualComponentName, BuildInfo)]
</span><a href="#local-6989586621679676423"><span class="hs-identifier hs-var">exe_bi</span></a></span><span>    </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PackageDescription -&gt; [Executable]
</span><a href="Distribution.Types.PackageDescription.html#executables"><span class="hs-identifier hs-var hs-var">executables</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676422"><span class="hs-identifier hs-var">p</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-366"></span><span>       </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">library :: Maybe Library
</span><a href="Distribution.Types.PackageDescription.html#library"><span class="hs-identifier hs-var">library</span></a></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe BuildInfo -&gt; Maybe Library -&gt; Maybe Library
</span><a href="#local-6989586621679676420"><span class="hs-identifier hs-var">updateLibrary</span></a></span><span>     </span><span class="annot"><span class="annottext">Maybe BuildInfo
</span><a href="#local-6989586621679676424"><span class="hs-identifier hs-var">mb_lib_bi</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PackageDescription -&gt; Maybe Library
</span><a href="Distribution.Types.PackageDescription.html#library"><span class="hs-identifier hs-var hs-var">library</span></a></span><span>     </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676422"><span class="hs-identifier hs-var">p</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">}</span><span>
</span><span id="line-367"></span><span>    </span><span class="hs-keyword">where</span><span>
</span><span id="line-368"></span><span>      </span><span class="annot"><a href="#local-6989586621679676420"><span class="hs-identifier hs-type">updateLibrary</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.BuildInfo.html#BuildInfo"><span class="hs-identifier hs-type">BuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.Library.html#Library"><span class="hs-identifier hs-type">Library</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.Library.html#Library"><span class="hs-identifier hs-type">Library</span></a></span><span>
</span><span id="line-369"></span><span>      </span><span id="local-6989586621679676420"><span class="annot"><span class="annottext">updateLibrary :: Maybe BuildInfo -&gt; Maybe Library -&gt; Maybe Library
</span><a href="#local-6989586621679676420"><span class="hs-identifier hs-var hs-var">updateLibrary</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679676419"><span class="annot"><span class="annottext">BuildInfo
</span><a href="#local-6989586621679676419"><span class="hs-identifier hs-var">bi</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679676418"><span class="annot"><span class="annottext">Library
</span><a href="#local-6989586621679676418"><span class="hs-identifier hs-var">lib</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Library -&gt; Maybe Library
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Library
</span><a href="#local-6989586621679676418"><span class="hs-identifier hs-var">lib</span></a></span><span class="hs-special">{</span><span class="annot"><span class="annottext">libBuildInfo :: BuildInfo
</span><a href="Distribution.Types.Library.html#libBuildInfo"><span class="hs-identifier hs-var">libBuildInfo</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">BuildInfo
</span><a href="#local-6989586621679676419"><span class="hs-identifier hs-var">bi</span></a></span><span> </span><span class="annot"><span class="annottext">BuildInfo -&gt; BuildInfo -&gt; BuildInfo
forall a. Monoid a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Base.html#mappend"><span class="hs-operator hs-var">`mappend`</span></a></span><span> </span><span class="annot"><span class="annottext">Library -&gt; BuildInfo
</span><a href="Distribution.Types.Library.html#libBuildInfo"><span class="hs-identifier hs-var hs-var">libBuildInfo</span></a></span><span> </span><span class="annot"><span class="annottext">Library
</span><a href="#local-6989586621679676418"><span class="hs-identifier hs-var">lib</span></a></span><span class="hs-special">}</span><span class="hs-special">)</span><span>
</span><span id="line-370"></span><span>      </span><span class="annot"><a href="#local-6989586621679676420"><span class="hs-identifier hs-var">updateLibrary</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe BuildInfo
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span>   </span><span id="local-6989586621679676417"><span class="annot"><span class="annottext">Maybe Library
</span><a href="#local-6989586621679676417"><span class="hs-identifier hs-var">mb_lib</span></a></span></span><span>     </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe Library
</span><a href="#local-6989586621679676417"><span class="hs-identifier hs-var">mb_lib</span></a></span><span>
</span><span id="line-371"></span><span>      </span><span class="annot"><a href="#local-6989586621679676420"><span class="hs-identifier hs-var">updateLibrary</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span class="annot"><span class="annottext">BuildInfo
</span><span class="hs-identifier">_</span></span><span class="hs-special">)</span><span>  </span><span class="annot"><span class="annottext">Maybe Library
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe Library
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span>
</span><span id="line-372"></span><span>
</span><span id="line-373"></span><span>      </span><span class="annot"><a href="#local-6989586621679676421"><span class="hs-identifier hs-type">updateExecutables</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Types.UnqualComponentName.html#UnqualComponentName"><span class="hs-identifier hs-type">UnqualComponentName</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.Types.BuildInfo.html#BuildInfo"><span class="hs-identifier hs-type">BuildInfo</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span> </span><span class="hs-comment">-- ^[(exeName, new buildinfo)]</span><span>
</span><span id="line-374"></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Types.Executable.html#Executable"><span class="hs-identifier hs-type">Executable</span></a></span><span class="hs-special">]</span><span>                                       </span><span class="hs-comment">-- ^list of executables to update</span><span>
</span><span id="line-375"></span><span>        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Types.Executable.html#Executable"><span class="hs-identifier hs-type">Executable</span></a></span><span class="hs-special">]</span><span>                                       </span><span class="hs-comment">-- ^list with exeNames updated</span><span>
</span><span id="line-376"></span><span>      </span><span id="local-6989586621679676421"><span class="annot"><span class="annottext">updateExecutables :: [(UnqualComponentName, BuildInfo)] -&gt; [Executable] -&gt; [Executable]
</span><a href="#local-6989586621679676421"><span class="hs-identifier hs-var hs-var">updateExecutables</span></a></span></span><span> </span><span id="local-6989586621679676416"><span class="annot"><span class="annottext">[(UnqualComponentName, BuildInfo)]
</span><a href="#local-6989586621679676416"><span class="hs-identifier hs-var">exe_bi'</span></a></span></span><span> </span><span id="local-6989586621679676415"><span class="annot"><span class="annottext">[Executable]
</span><a href="#local-6989586621679676415"><span class="hs-identifier hs-var">executables'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">((UnqualComponentName, BuildInfo) -&gt; [Executable] -&gt; [Executable])
-&gt; [Executable]
-&gt; [(UnqualComponentName, BuildInfo)]
-&gt; [Executable]
forall (t :: * -&gt; *) a b.
Foldable t =&gt;
(a -&gt; b -&gt; b) -&gt; b -&gt; t a -&gt; b
</span><a href="../../base/src/Data.Foldable.html#foldr"><span class="hs-identifier hs-var">foldr</span></a></span><span> </span><span class="annot"><span class="annottext">(UnqualComponentName, BuildInfo) -&gt; [Executable] -&gt; [Executable]
</span><a href="#local-6989586621679676413"><span class="hs-identifier hs-var">updateExecutable</span></a></span><span> </span><span class="annot"><span class="annottext">[Executable]
</span><a href="#local-6989586621679676415"><span class="hs-identifier hs-var">executables'</span></a></span><span> </span><span class="annot"><span class="annottext">[(UnqualComponentName, BuildInfo)]
</span><a href="#local-6989586621679676416"><span class="hs-identifier hs-var">exe_bi'</span></a></span><span>
</span><span id="line-377"></span><span>
</span><span id="line-378"></span><span>      </span><span class="annot"><a href="#local-6989586621679676413"><span class="hs-identifier hs-type">updateExecutable</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Types.UnqualComponentName.html#UnqualComponentName"><span class="hs-identifier hs-type">UnqualComponentName</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.Types.BuildInfo.html#BuildInfo"><span class="hs-identifier hs-type">BuildInfo</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-comment">-- ^(exeName, new buildinfo)</span><span>
</span><span id="line-379"></span><span>                       </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Types.Executable.html#Executable"><span class="hs-identifier hs-type">Executable</span></a></span><span class="hs-special">]</span><span>                     </span><span class="hs-comment">-- ^list of executables to update</span><span>
</span><span id="line-380"></span><span>                       </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Types.Executable.html#Executable"><span class="hs-identifier hs-type">Executable</span></a></span><span class="hs-special">]</span><span>                     </span><span class="hs-comment">-- ^list with exeName updated</span><span>
</span><span id="line-381"></span><span>      </span><span id="local-6989586621679676413"><span class="annot"><span class="annottext">updateExecutable :: (UnqualComponentName, BuildInfo) -&gt; [Executable] -&gt; [Executable]
</span><a href="#local-6989586621679676413"><span class="hs-identifier hs-var hs-var">updateExecutable</span></a></span></span><span> </span><span class="annot"><span class="annottext">(UnqualComponentName, BuildInfo)
</span><span class="hs-identifier">_</span></span><span>                 </span><span class="hs-special">[</span><span class="hs-special">]</span><span>         </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-382"></span><span>      </span><span class="annot"><a href="#local-6989586621679676413"><span class="hs-identifier hs-var">updateExecutable</span></a></span><span> </span><span id="local-6989586621679676412"><span class="annot"><span class="annottext">exe_bi' :: (UnqualComponentName, BuildInfo)
</span><a href="#local-6989586621679676412"><span class="hs-identifier hs-var">exe_bi'</span></a></span></span><span class="hs-glyph">@</span><span class="hs-special">(</span><span id="local-6989586621679676411"><span class="annot"><span class="annottext">UnqualComponentName
</span><a href="#local-6989586621679676411"><span class="hs-identifier hs-var">name</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621679676410"><span class="annot"><span class="annottext">BuildInfo
</span><a href="#local-6989586621679676410"><span class="hs-identifier hs-var">bi</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span id="local-6989586621679676409"><span class="annot"><span class="annottext">Executable
</span><a href="#local-6989586621679676409"><span class="hs-identifier hs-var">exe</span></a></span></span><span class="annot"><span class="hs-glyph hs-type">:</span></span><span id="local-6989586621679676408"><span class="annot"><span class="annottext">[Executable]
</span><a href="#local-6989586621679676408"><span class="hs-identifier hs-var">exes</span></a></span></span><span class="hs-special">)</span><span>
</span><span id="line-383"></span><span>        </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Executable -&gt; UnqualComponentName
</span><a href="Distribution.Types.Executable.html#exeName"><span class="hs-identifier hs-var hs-var">exeName</span></a></span><span> </span><span class="annot"><span class="annottext">Executable
</span><a href="#local-6989586621679676409"><span class="hs-identifier hs-var">exe</span></a></span><span> </span><span class="annot"><span class="annottext">UnqualComponentName -&gt; UnqualComponentName -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">UnqualComponentName
</span><a href="#local-6989586621679676411"><span class="hs-identifier hs-var">name</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Executable
</span><a href="#local-6989586621679676409"><span class="hs-identifier hs-var">exe</span></a></span><span class="hs-special">{</span><span class="annot"><span class="annottext">buildInfo :: BuildInfo
</span><a href="Distribution.Types.Executable.html#buildInfo"><span class="hs-identifier hs-var">buildInfo</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">BuildInfo
</span><a href="#local-6989586621679676410"><span class="hs-identifier hs-var">bi</span></a></span><span> </span><span class="annot"><span class="annottext">BuildInfo -&gt; BuildInfo -&gt; BuildInfo
forall a. Monoid a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Base.html#mappend"><span class="hs-operator hs-var">`mappend`</span></a></span><span> </span><span class="annot"><span class="annottext">Executable -&gt; BuildInfo
</span><a href="Distribution.Types.Executable.html#buildInfo"><span class="hs-identifier hs-var hs-var">buildInfo</span></a></span><span> </span><span class="annot"><span class="annottext">Executable
</span><a href="#local-6989586621679676409"><span class="hs-identifier hs-var">exe</span></a></span><span class="hs-special">}</span><span> </span><span class="annot"><span class="annottext">Executable -&gt; [Executable] -&gt; [Executable]
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span> </span><span class="annot"><span class="annottext">[Executable]
</span><a href="#local-6989586621679676408"><span class="hs-identifier hs-var">exes</span></a></span><span>
</span><span id="line-384"></span><span>        </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span>           </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Executable
</span><a href="#local-6989586621679676409"><span class="hs-identifier hs-var">exe</span></a></span><span> </span><span class="annot"><span class="annottext">Executable -&gt; [Executable] -&gt; [Executable]
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span> </span><span class="annot"><span class="annottext">(UnqualComponentName, BuildInfo) -&gt; [Executable] -&gt; [Executable]
</span><a href="#local-6989586621679676413"><span class="hs-identifier hs-var">updateExecutable</span></a></span><span> </span><span class="annot"><span class="annottext">(UnqualComponentName, BuildInfo)
</span><a href="#local-6989586621679676412"><span class="hs-identifier hs-var">exe_bi'</span></a></span><span> </span><span class="annot"><span class="annottext">[Executable]
</span><a href="#local-6989586621679676408"><span class="hs-identifier hs-var">exes</span></a></span><span>
</span><span id="line-385"></span><span>
</span><span id="line-386"></span><span class="hs-comment">-- -----------------------------------------------------------------------------</span><span>
</span><span id="line-387"></span><span class="hs-comment">-- Source-representation of buildable components</span><span>
</span><span id="line-388"></span><span>
</span><span id="line-389"></span><span class="hs-comment">-- | All the components in the package.</span><span>
</span><span id="line-390"></span><span class="hs-comment">--</span><span>
</span><span id="line-391"></span><span class="annot"><a href="Distribution.Types.PackageDescription.html#pkgComponents"><span class="hs-identifier hs-type">pkgComponents</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Types.Component.html#Component"><span class="hs-identifier hs-type">Component</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-392"></span><span id="pkgComponents"><span class="annot"><span class="annottext">pkgComponents :: PackageDescription -&gt; [Component]
</span><a href="Distribution.Types.PackageDescription.html#pkgComponents"><span class="hs-identifier hs-var hs-var">pkgComponents</span></a></span></span><span> </span><span id="local-6989586621679676406"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676406"><span class="hs-identifier hs-var">pkg</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-393"></span><span>    </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">Library -&gt; Component
</span><a href="Distribution.Types.Component.html#CLib"><span class="hs-identifier hs-var">CLib</span></a></span><span>  </span><span class="annot"><span class="annottext">Library
</span><a href="#local-6989586621679676404"><span class="hs-identifier hs-var">lib</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span id="local-6989586621679676404"><span class="annot"><span class="annottext">Library
</span><a href="#local-6989586621679676404"><span class="hs-identifier hs-var">lib</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; [Library]
</span><a href="Distribution.Types.PackageDescription.html#allLibraries"><span class="hs-identifier hs-var">allLibraries</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676406"><span class="hs-identifier hs-var">pkg</span></a></span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-394"></span><span> </span><span class="annot"><span class="annottext">[Component] -&gt; [Component] -&gt; [Component]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">ForeignLib -&gt; Component
</span><a href="Distribution.Types.Component.html#CFLib"><span class="hs-identifier hs-var">CFLib</span></a></span><span> </span><span class="annot"><span class="annottext">ForeignLib
</span><a href="#local-6989586621679676402"><span class="hs-identifier hs-var">flib</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span id="local-6989586621679676402"><span class="annot"><span class="annottext">ForeignLib
</span><a href="#local-6989586621679676402"><span class="hs-identifier hs-var">flib</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; [ForeignLib]
</span><a href="Distribution.Types.PackageDescription.html#foreignLibs"><span class="hs-identifier hs-var hs-var">foreignLibs</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676406"><span class="hs-identifier hs-var">pkg</span></a></span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-395"></span><span> </span><span class="annot"><span class="annottext">[Component] -&gt; [Component] -&gt; [Component]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">Executable -&gt; Component
</span><a href="Distribution.Types.Component.html#CExe"><span class="hs-identifier hs-var">CExe</span></a></span><span>  </span><span class="annot"><span class="annottext">Executable
</span><a href="#local-6989586621679676400"><span class="hs-identifier hs-var">exe</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span id="local-6989586621679676400"><span class="annot"><span class="annottext">Executable
</span><a href="#local-6989586621679676400"><span class="hs-identifier hs-var">exe</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; [Executable]
</span><a href="Distribution.Types.PackageDescription.html#executables"><span class="hs-identifier hs-var hs-var">executables</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676406"><span class="hs-identifier hs-var">pkg</span></a></span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-396"></span><span> </span><span class="annot"><span class="annottext">[Component] -&gt; [Component] -&gt; [Component]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">TestSuite -&gt; Component
</span><a href="Distribution.Types.Component.html#CTest"><span class="hs-identifier hs-var">CTest</span></a></span><span> </span><span class="annot"><span class="annottext">TestSuite
</span><a href="#local-6989586621679676398"><span class="hs-identifier hs-var">tst</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span id="local-6989586621679676398"><span class="annot"><span class="annottext">TestSuite
</span><a href="#local-6989586621679676398"><span class="hs-identifier hs-var">tst</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; [TestSuite]
</span><a href="Distribution.Types.PackageDescription.html#testSuites"><span class="hs-identifier hs-var hs-var">testSuites</span></a></span><span>  </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676406"><span class="hs-identifier hs-var">pkg</span></a></span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-397"></span><span> </span><span class="annot"><span class="annottext">[Component] -&gt; [Component] -&gt; [Component]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">Benchmark -&gt; Component
</span><a href="Distribution.Types.Component.html#CBench"><span class="hs-identifier hs-var">CBench</span></a></span><span> </span><span class="annot"><span class="annottext">Benchmark
</span><a href="#local-6989586621679676396"><span class="hs-identifier hs-var">bm</span></a></span><span> </span><span class="hs-glyph">|</span><span> </span><span id="local-6989586621679676396"><span class="annot"><span class="annottext">Benchmark
</span><a href="#local-6989586621679676396"><span class="hs-identifier hs-var">bm</span></a></span></span><span>  </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; [Benchmark]
</span><a href="Distribution.Types.PackageDescription.html#benchmarks"><span class="hs-identifier hs-var hs-var">benchmarks</span></a></span><span>  </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676406"><span class="hs-identifier hs-var">pkg</span></a></span><span> </span><span class="hs-special">]</span><span>
</span><span id="line-398"></span><span>
</span><span id="line-399"></span><span class="hs-comment">-- | A list of all components in the package that are buildable,</span><span>
</span><span id="line-400"></span><span class="hs-comment">-- i.e., were not marked with @buildable: False@.  This does NOT</span><span>
</span><span id="line-401"></span><span class="hs-comment">-- indicate if we are actually going to build the component,</span><span>
</span><span id="line-402"></span><span class="hs-comment">-- see 'enabledComponents' instead.</span><span>
</span><span id="line-403"></span><span class="hs-comment">--</span><span>
</span><span id="line-404"></span><span class="hs-comment">-- @since 2.0.0.2</span><span>
</span><span id="line-405"></span><span class="hs-comment">--</span><span>
</span><span id="line-406"></span><span class="annot"><a href="Distribution.Types.PackageDescription.html#pkgBuildableComponents"><span class="hs-identifier hs-type">pkgBuildableComponents</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Types.Component.html#Component"><span class="hs-identifier hs-type">Component</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-407"></span><span id="pkgBuildableComponents"><span class="annot"><span class="annottext">pkgBuildableComponents :: PackageDescription -&gt; [Component]
</span><a href="Distribution.Types.PackageDescription.html#pkgBuildableComponents"><span class="hs-identifier hs-var hs-var">pkgBuildableComponents</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Component -&gt; Bool) -&gt; [Component] -&gt; [Component]
forall a. (a -&gt; Bool) -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.List.html#filter"><span class="hs-identifier hs-var">filter</span></a></span><span> </span><span class="annot"><span class="annottext">Component -&gt; Bool
</span><a href="Distribution.Types.Component.html#componentBuildable"><span class="hs-identifier hs-var">componentBuildable</span></a></span><span> </span><span class="annot"><span class="annottext">([Component] -&gt; [Component])
-&gt; (PackageDescription -&gt; [Component])
-&gt; PackageDescription
-&gt; [Component]
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; [Component]
</span><a href="Distribution.Types.PackageDescription.html#pkgComponents"><span class="hs-identifier hs-var">pkgComponents</span></a></span><span>
</span><span id="line-408"></span><span>
</span><span id="line-409"></span><span class="hs-comment">-- | A list of all components in the package that are enabled.</span><span>
</span><span id="line-410"></span><span class="hs-comment">--</span><span>
</span><span id="line-411"></span><span class="hs-comment">-- @since 2.0.0.2</span><span>
</span><span id="line-412"></span><span class="hs-comment">--</span><span>
</span><span id="line-413"></span><span class="annot"><a href="Distribution.Types.PackageDescription.html#enabledComponents"><span class="hs-identifier hs-type">enabledComponents</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.ComponentRequestedSpec.html#ComponentRequestedSpec"><span class="hs-identifier hs-type">ComponentRequestedSpec</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Types.Component.html#Component"><span class="hs-identifier hs-type">Component</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-414"></span><span id="enabledComponents"><span class="annot"><span class="annottext">enabledComponents :: PackageDescription -&gt; ComponentRequestedSpec -&gt; [Component]
</span><a href="Distribution.Types.PackageDescription.html#enabledComponents"><span class="hs-identifier hs-var hs-var">enabledComponents</span></a></span></span><span> </span><span id="local-6989586621679676394"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676394"><span class="hs-identifier hs-var">pkg</span></a></span></span><span> </span><span id="local-6989586621679676393"><span class="annot"><span class="annottext">ComponentRequestedSpec
</span><a href="#local-6989586621679676393"><span class="hs-identifier hs-var">enabled</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Component -&gt; Bool) -&gt; [Component] -&gt; [Component]
forall a. (a -&gt; Bool) -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.List.html#filter"><span class="hs-identifier hs-var">filter</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ComponentRequestedSpec -&gt; Component -&gt; Bool
</span><a href="Distribution.Types.ComponentRequestedSpec.html#componentEnabled"><span class="hs-identifier hs-var">componentEnabled</span></a></span><span> </span><span class="annot"><span class="annottext">ComponentRequestedSpec
</span><a href="#local-6989586621679676393"><span class="hs-identifier hs-var">enabled</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">([Component] -&gt; [Component]) -&gt; [Component] -&gt; [Component]
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; [Component]
</span><a href="Distribution.Types.PackageDescription.html#pkgBuildableComponents"><span class="hs-identifier hs-var">pkgBuildableComponents</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676394"><span class="hs-identifier hs-var">pkg</span></a></span><span>
</span><span id="line-415"></span><span>
</span><span id="line-416"></span><span class="annot"><a href="Distribution.Types.PackageDescription.html#lookupComponent"><span class="hs-identifier hs-type">lookupComponent</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.ComponentName.html#ComponentName"><span class="hs-identifier hs-type">ComponentName</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.Component.html#Component"><span class="hs-identifier hs-type">Component</span></a></span><span>
</span><span id="line-417"></span><span id="lookupComponent"><span class="annot"><span class="annottext">lookupComponent :: PackageDescription -&gt; ComponentName -&gt; Maybe Component
</span><a href="Distribution.Types.PackageDescription.html#lookupComponent"><span class="hs-identifier hs-var hs-var">lookupComponent</span></a></span></span><span> </span><span id="local-6989586621679676391"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676391"><span class="hs-identifier hs-var">pkg</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Types.ComponentName.html#CLibName"><span class="hs-identifier hs-type">CLibName</span></a></span><span> </span><span id="local-6989586621679676389"><span class="annot"><span class="annottext">LibraryName
</span><a href="#local-6989586621679676389"><span class="hs-identifier hs-var">name</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-418"></span><span>    </span><span class="annot"><span class="annottext">(Library -&gt; Component) -&gt; Maybe Library -&gt; Maybe Component
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span> </span><span class="annot"><span class="annottext">Library -&gt; Component
</span><a href="Distribution.Types.Component.html#CLib"><span class="hs-identifier hs-var">CLib</span></a></span><span> </span><span class="annot"><span class="annottext">(Maybe Library -&gt; Maybe Component)
-&gt; Maybe Library -&gt; Maybe Component
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(Library -&gt; Bool) -&gt; [Library] -&gt; Maybe Library
forall (t :: * -&gt; *) a. Foldable t =&gt; (a -&gt; Bool) -&gt; t a -&gt; Maybe a
</span><a href="../../base/src/Data.Foldable.html#find"><span class="hs-identifier hs-var">find</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="annot"><span class="annottext">LibraryName
</span><a href="#local-6989586621679676389"><span class="hs-identifier hs-var">name</span></a></span><span> </span><span class="annot"><span class="annottext">LibraryName -&gt; LibraryName -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(LibraryName -&gt; Bool)
-&gt; (Library -&gt; LibraryName) -&gt; Library -&gt; Bool
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Library -&gt; LibraryName
</span><a href="Distribution.Types.Library.html#libName"><span class="hs-identifier hs-var hs-var">libName</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PackageDescription -&gt; [Library]
</span><a href="Distribution.Types.PackageDescription.html#allLibraries"><span class="hs-identifier hs-var">allLibraries</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676391"><span class="hs-identifier hs-var">pkg</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-419"></span><span class="annot"><a href="Distribution.Types.PackageDescription.html#lookupComponent"><span class="hs-identifier hs-var">lookupComponent</span></a></span><span> </span><span id="local-6989586621679676386"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676386"><span class="hs-identifier hs-var">pkg</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Types.ComponentName.html#CFLibName"><span class="hs-identifier hs-type">CFLibName</span></a></span><span> </span><span id="local-6989586621679676384"><span class="annot"><span class="annottext">UnqualComponentName
</span><a href="#local-6989586621679676384"><span class="hs-identifier hs-var">name</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-420"></span><span>    </span><span class="annot"><span class="annottext">(ForeignLib -&gt; Component) -&gt; Maybe ForeignLib -&gt; Maybe Component
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span> </span><span class="annot"><span class="annottext">ForeignLib -&gt; Component
</span><a href="Distribution.Types.Component.html#CFLib"><span class="hs-identifier hs-var">CFLib</span></a></span><span> </span><span class="annot"><span class="annottext">(Maybe ForeignLib -&gt; Maybe Component)
-&gt; Maybe ForeignLib -&gt; Maybe Component
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(ForeignLib -&gt; Bool) -&gt; [ForeignLib] -&gt; Maybe ForeignLib
forall (t :: * -&gt; *) a. Foldable t =&gt; (a -&gt; Bool) -&gt; t a -&gt; Maybe a
</span><a href="../../base/src/Data.Foldable.html#find"><span class="hs-identifier hs-var">find</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="annot"><span class="annottext">UnqualComponentName
</span><a href="#local-6989586621679676384"><span class="hs-identifier hs-var">name</span></a></span><span> </span><span class="annot"><span class="annottext">UnqualComponentName -&gt; UnqualComponentName -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(UnqualComponentName -&gt; Bool)
-&gt; (ForeignLib -&gt; UnqualComponentName) -&gt; ForeignLib -&gt; Bool
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">ForeignLib -&gt; UnqualComponentName
</span><a href="Distribution.Types.ForeignLib.html#foreignLibName"><span class="hs-identifier hs-var hs-var">foreignLibName</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PackageDescription -&gt; [ForeignLib]
</span><a href="Distribution.Types.PackageDescription.html#foreignLibs"><span class="hs-identifier hs-var hs-var">foreignLibs</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676386"><span class="hs-identifier hs-var">pkg</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-421"></span><span class="annot"><a href="Distribution.Types.PackageDescription.html#lookupComponent"><span class="hs-identifier hs-var">lookupComponent</span></a></span><span> </span><span id="local-6989586621679676382"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676382"><span class="hs-identifier hs-var">pkg</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Types.ComponentName.html#CExeName"><span class="hs-identifier hs-type">CExeName</span></a></span><span> </span><span id="local-6989586621679676380"><span class="annot"><span class="annottext">UnqualComponentName
</span><a href="#local-6989586621679676380"><span class="hs-identifier hs-var">name</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-422"></span><span>    </span><span class="annot"><span class="annottext">(Executable -&gt; Component) -&gt; Maybe Executable -&gt; Maybe Component
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span> </span><span class="annot"><span class="annottext">Executable -&gt; Component
</span><a href="Distribution.Types.Component.html#CExe"><span class="hs-identifier hs-var">CExe</span></a></span><span> </span><span class="annot"><span class="annottext">(Maybe Executable -&gt; Maybe Component)
-&gt; Maybe Executable -&gt; Maybe Component
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(Executable -&gt; Bool) -&gt; [Executable] -&gt; Maybe Executable
forall (t :: * -&gt; *) a. Foldable t =&gt; (a -&gt; Bool) -&gt; t a -&gt; Maybe a
</span><a href="../../base/src/Data.Foldable.html#find"><span class="hs-identifier hs-var">find</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="annot"><span class="annottext">UnqualComponentName
</span><a href="#local-6989586621679676380"><span class="hs-identifier hs-var">name</span></a></span><span> </span><span class="annot"><span class="annottext">UnqualComponentName -&gt; UnqualComponentName -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(UnqualComponentName -&gt; Bool)
-&gt; (Executable -&gt; UnqualComponentName) -&gt; Executable -&gt; Bool
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Executable -&gt; UnqualComponentName
</span><a href="Distribution.Types.Executable.html#exeName"><span class="hs-identifier hs-var hs-var">exeName</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PackageDescription -&gt; [Executable]
</span><a href="Distribution.Types.PackageDescription.html#executables"><span class="hs-identifier hs-var hs-var">executables</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676382"><span class="hs-identifier hs-var">pkg</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-423"></span><span class="annot"><a href="Distribution.Types.PackageDescription.html#lookupComponent"><span class="hs-identifier hs-var">lookupComponent</span></a></span><span> </span><span id="local-6989586621679676379"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676379"><span class="hs-identifier hs-var">pkg</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Types.ComponentName.html#CTestName"><span class="hs-identifier hs-type">CTestName</span></a></span><span> </span><span id="local-6989586621679676377"><span class="annot"><span class="annottext">UnqualComponentName
</span><a href="#local-6989586621679676377"><span class="hs-identifier hs-var">name</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-424"></span><span>    </span><span class="annot"><span class="annottext">(TestSuite -&gt; Component) -&gt; Maybe TestSuite -&gt; Maybe Component
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span> </span><span class="annot"><span class="annottext">TestSuite -&gt; Component
</span><a href="Distribution.Types.Component.html#CTest"><span class="hs-identifier hs-var">CTest</span></a></span><span> </span><span class="annot"><span class="annottext">(Maybe TestSuite -&gt; Maybe Component)
-&gt; Maybe TestSuite -&gt; Maybe Component
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(TestSuite -&gt; Bool) -&gt; [TestSuite] -&gt; Maybe TestSuite
forall (t :: * -&gt; *) a. Foldable t =&gt; (a -&gt; Bool) -&gt; t a -&gt; Maybe a
</span><a href="../../base/src/Data.Foldable.html#find"><span class="hs-identifier hs-var">find</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="annot"><span class="annottext">UnqualComponentName
</span><a href="#local-6989586621679676377"><span class="hs-identifier hs-var">name</span></a></span><span> </span><span class="annot"><span class="annottext">UnqualComponentName -&gt; UnqualComponentName -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(UnqualComponentName -&gt; Bool)
-&gt; (TestSuite -&gt; UnqualComponentName) -&gt; TestSuite -&gt; Bool
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">TestSuite -&gt; UnqualComponentName
</span><a href="Distribution.Types.TestSuite.html#testName"><span class="hs-identifier hs-var hs-var">testName</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PackageDescription -&gt; [TestSuite]
</span><a href="Distribution.Types.PackageDescription.html#testSuites"><span class="hs-identifier hs-var hs-var">testSuites</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676379"><span class="hs-identifier hs-var">pkg</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-425"></span><span class="annot"><a href="Distribution.Types.PackageDescription.html#lookupComponent"><span class="hs-identifier hs-var">lookupComponent</span></a></span><span> </span><span id="local-6989586621679676375"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676375"><span class="hs-identifier hs-var">pkg</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Types.ComponentName.html#CBenchName"><span class="hs-identifier hs-type">CBenchName</span></a></span><span> </span><span id="local-6989586621679676373"><span class="annot"><span class="annottext">UnqualComponentName
</span><a href="#local-6989586621679676373"><span class="hs-identifier hs-var">name</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-426"></span><span>    </span><span class="annot"><span class="annottext">(Benchmark -&gt; Component) -&gt; Maybe Benchmark -&gt; Maybe Component
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#fmap"><span class="hs-identifier hs-var">fmap</span></a></span><span> </span><span class="annot"><span class="annottext">Benchmark -&gt; Component
</span><a href="Distribution.Types.Component.html#CBench"><span class="hs-identifier hs-var">CBench</span></a></span><span> </span><span class="annot"><span class="annottext">(Maybe Benchmark -&gt; Maybe Component)
-&gt; Maybe Benchmark -&gt; Maybe Component
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(Benchmark -&gt; Bool) -&gt; [Benchmark] -&gt; Maybe Benchmark
forall (t :: * -&gt; *) a. Foldable t =&gt; (a -&gt; Bool) -&gt; t a -&gt; Maybe a
</span><a href="../../base/src/Data.Foldable.html#find"><span class="hs-identifier hs-var">find</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="annot"><span class="annottext">UnqualComponentName
</span><a href="#local-6989586621679676373"><span class="hs-identifier hs-var">name</span></a></span><span> </span><span class="annot"><span class="annottext">UnqualComponentName -&gt; UnqualComponentName -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">(UnqualComponentName -&gt; Bool)
-&gt; (Benchmark -&gt; UnqualComponentName) -&gt; Benchmark -&gt; Bool
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Benchmark -&gt; UnqualComponentName
</span><a href="Distribution.Types.Benchmark.html#benchmarkName"><span class="hs-identifier hs-var hs-var">benchmarkName</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">PackageDescription -&gt; [Benchmark]
</span><a href="Distribution.Types.PackageDescription.html#benchmarks"><span class="hs-identifier hs-var hs-var">benchmarks</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676375"><span class="hs-identifier hs-var">pkg</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-427"></span><span>
</span><span id="line-428"></span><span class="annot"><a href="Distribution.Types.PackageDescription.html#getComponent"><span class="hs-identifier hs-type">getComponent</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.ComponentName.html#ComponentName"><span class="hs-identifier hs-type">ComponentName</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.Component.html#Component"><span class="hs-identifier hs-type">Component</span></a></span><span>
</span><span id="line-429"></span><span id="getComponent"><span class="annot"><span class="annottext">getComponent :: PackageDescription -&gt; ComponentName -&gt; Component
</span><a href="Distribution.Types.PackageDescription.html#getComponent"><span class="hs-identifier hs-var hs-var">getComponent</span></a></span></span><span> </span><span id="local-6989586621679676371"><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676371"><span class="hs-identifier hs-var">pkg</span></a></span></span><span> </span><span id="local-6989586621679676370"><span class="annot"><span class="annottext">ComponentName
</span><a href="#local-6989586621679676370"><span class="hs-identifier hs-var">cname</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-430"></span><span>    </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; ComponentName -&gt; Maybe Component
</span><a href="Distribution.Types.PackageDescription.html#lookupComponent"><span class="hs-identifier hs-var">lookupComponent</span></a></span><span> </span><span class="annot"><span class="annottext">PackageDescription
</span><a href="#local-6989586621679676371"><span class="hs-identifier hs-var">pkg</span></a></span><span> </span><span class="annot"><span class="annottext">ComponentName
</span><a href="#local-6989586621679676370"><span class="hs-identifier hs-var">cname</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-431"></span><span>      </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679676369"><span class="annot"><span class="annottext">Component
</span><a href="#local-6989586621679676369"><span class="hs-identifier hs-var">cpnt</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Component
</span><a href="#local-6989586621679676369"><span class="hs-identifier hs-var">cpnt</span></a></span><span>
</span><span id="line-432"></span><span>      </span><span class="annot"><span class="annottext">Maybe Component
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span>   </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Component
forall {a}. a
</span><a href="#local-6989586621679676368"><span class="hs-identifier hs-var">missingComponent</span></a></span><span>
</span><span id="line-433"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-434"></span><span>    </span><span id="local-6989586621679676368"><span class="annot"><span class="annottext">missingComponent :: a
</span><a href="#local-6989586621679676368"><span class="hs-identifier hs-var hs-var">missingComponent</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-435"></span><span>      </span><span class="annot"><span class="annottext">FilePath -&gt; a
forall a. HasCallStack =&gt; FilePath -&gt; a
</span><a href="../../base/src/GHC.Err.html#error"><span class="hs-identifier hs-var">error</span></a></span><span> </span><span class="annot"><span class="annottext">(FilePath -&gt; a) -&gt; FilePath -&gt; a
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><span class="hs-string">&quot;internal error: the package description contains no &quot;</span></span><span>
</span><span id="line-436"></span><span>           </span><span class="annot"><span class="annottext">FilePath -&gt; ShowS
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><span class="hs-string">&quot;component corresponding to &quot;</span></span><span> </span><span class="annot"><span class="annottext">FilePath -&gt; ShowS
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">ComponentName -&gt; FilePath
forall a. Show a =&gt; a -&gt; FilePath
</span><a href="../../base/src/GHC.Show.html#show"><span class="hs-identifier hs-var">show</span></a></span><span> </span><span class="annot"><span class="annottext">ComponentName
</span><a href="#local-6989586621679676370"><span class="hs-identifier hs-var">cname</span></a></span><span>
</span><span id="line-437"></span><span>
</span><span id="line-438"></span><span class="hs-comment">-- -----------------------------------------------------------------------------</span><span>
</span><span id="line-439"></span><span class="hs-comment">-- Traversal Instances</span><span>
</span><span id="line-440"></span><span>
</span><span id="line-441"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="Distribution.Types.BuildInfo.Lens.html#HasBuildInfos"><span class="hs-identifier hs-type">L.HasBuildInfos</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-442"></span><span>  </span><span id="local-6989586621679676308"><span class="annot"><span class="annottext">traverseBuildInfos :: Traversal' PackageDescription BuildInfo
</span><a href="Distribution.Types.BuildInfo.Lens.html#traverseBuildInfos"><span class="hs-identifier hs-var hs-var hs-var hs-var">traverseBuildInfos</span></a></span></span><span> </span><span id="local-6989586621679676306"><span class="annot"><span class="annottext">BuildInfo -&gt; f BuildInfo
</span><a href="#local-6989586621679676306"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span id="local-6989586621679676305"><span class="annot"><span class="annottext">CabalSpecVersion
</span><a href="#local-6989586621679676305"><span class="hs-identifier hs-var">a1</span></a></span></span><span> </span><span id="local-6989586621679676304"><span class="annot"><span class="annottext">PackageIdentifier
</span><a href="#local-6989586621679676304"><span class="hs-identifier hs-var">a2</span></a></span></span><span> </span><span id="local-6989586621679676303"><span class="annot"><span class="annottext">Either License License
</span><a href="#local-6989586621679676303"><span class="hs-identifier hs-var">a3</span></a></span></span><span> </span><span id="local-6989586621679676302"><span class="annot"><span class="annottext">[FilePath]
</span><a href="#local-6989586621679676302"><span class="hs-identifier hs-var">a4</span></a></span></span><span> </span><span id="local-6989586621679676301"><span class="annot"><span class="annottext">ShortText
</span><a href="#local-6989586621679676301"><span class="hs-identifier hs-var">a5</span></a></span></span><span> </span><span id="local-6989586621679676300"><span class="annot"><span class="annottext">ShortText
</span><a href="#local-6989586621679676300"><span class="hs-identifier hs-var">a6</span></a></span></span><span> </span><span id="local-6989586621679676299"><span class="annot"><span class="annottext">ShortText
</span><a href="#local-6989586621679676299"><span class="hs-identifier hs-var">a7</span></a></span></span><span> </span><span id="local-6989586621679676298"><span class="annot"><span class="annottext">ShortText
</span><a href="#local-6989586621679676298"><span class="hs-identifier hs-var">a8</span></a></span></span><span> </span><span id="local-6989586621679676297"><span class="annot"><span class="annottext">[(CompilerFlavor, VersionRange)]
</span><a href="#local-6989586621679676297"><span class="hs-identifier hs-var">a9</span></a></span></span><span> </span><span id="local-6989586621679676296"><span class="annot"><span class="annottext">ShortText
</span><a href="#local-6989586621679676296"><span class="hs-identifier hs-var">a10</span></a></span></span><span> </span><span id="local-6989586621679676295"><span class="annot"><span class="annottext">ShortText
</span><a href="#local-6989586621679676295"><span class="hs-identifier hs-var">a11</span></a></span></span><span> </span><span id="local-6989586621679676294"><span class="annot"><span class="annottext">ShortText
</span><a href="#local-6989586621679676294"><span class="hs-identifier hs-var">a12</span></a></span></span><span> </span><span id="local-6989586621679676293"><span class="annot"><span class="annottext">[SourceRepo]
</span><a href="#local-6989586621679676293"><span class="hs-identifier hs-var">a13</span></a></span></span><span> </span><span id="local-6989586621679676292"><span class="annot"><span class="annottext">ShortText
</span><a href="#local-6989586621679676292"><span class="hs-identifier hs-var">a14</span></a></span></span><span> </span><span id="local-6989586621679676291"><span class="annot"><span class="annottext">ShortText
</span><a href="#local-6989586621679676291"><span class="hs-identifier hs-var">a15</span></a></span></span><span> </span><span id="local-6989586621679676290"><span class="annot"><span class="annottext">ShortText
</span><a href="#local-6989586621679676290"><span class="hs-identifier hs-var">a16</span></a></span></span><span> </span><span id="local-6989586621679676289"><span class="annot"><span class="annottext">[(FilePath, FilePath)]
</span><a href="#local-6989586621679676289"><span class="hs-identifier hs-var">a17</span></a></span></span><span> </span><span id="local-6989586621679676288"><span class="annot"><span class="annottext">Maybe BuildType
</span><a href="#local-6989586621679676288"><span class="hs-identifier hs-var">a18</span></a></span></span><span> </span><span id="local-6989586621679676287"><span class="annot"><span class="annottext">Maybe SetupBuildInfo
</span><a href="#local-6989586621679676287"><span class="hs-identifier hs-var">a19</span></a></span></span><span>
</span><span id="line-443"></span><span>                                   </span><span id="local-6989586621679676286"><span class="annot"><span class="annottext">Maybe Library
</span><a href="#local-6989586621679676286"><span class="hs-identifier hs-var">x1</span></a></span></span><span> </span><span id="local-6989586621679676285"><span class="annot"><span class="annottext">[Library]
</span><a href="#local-6989586621679676285"><span class="hs-identifier hs-var">x2</span></a></span></span><span> </span><span id="local-6989586621679676284"><span class="annot"><span class="annottext">[Executable]
</span><a href="#local-6989586621679676284"><span class="hs-identifier hs-var">x3</span></a></span></span><span> </span><span id="local-6989586621679676283"><span class="annot"><span class="annottext">[ForeignLib]
</span><a href="#local-6989586621679676283"><span class="hs-identifier hs-var">x4</span></a></span></span><span> </span><span id="local-6989586621679676282"><span class="annot"><span class="annottext">[TestSuite]
</span><a href="#local-6989586621679676282"><span class="hs-identifier hs-var">x5</span></a></span></span><span> </span><span id="local-6989586621679676281"><span class="annot"><span class="annottext">[Benchmark]
</span><a href="#local-6989586621679676281"><span class="hs-identifier hs-var">x6</span></a></span></span><span>
</span><span id="line-444"></span><span>                                   </span><span id="local-6989586621679676280"><span class="annot"><span class="annottext">[FilePath]
</span><a href="#local-6989586621679676280"><span class="hs-identifier hs-var">a20</span></a></span></span><span> </span><span id="local-6989586621679676279"><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621679676279"><span class="hs-identifier hs-var">a21</span></a></span></span><span> </span><span id="local-6989586621679676278"><span class="annot"><span class="annottext">[FilePath]
</span><a href="#local-6989586621679676278"><span class="hs-identifier hs-var">a22</span></a></span></span><span> </span><span id="local-6989586621679676277"><span class="annot"><span class="annottext">[FilePath]
</span><a href="#local-6989586621679676277"><span class="hs-identifier hs-var">a23</span></a></span></span><span> </span><span id="local-6989586621679676276"><span class="annot"><span class="annottext">[FilePath]
</span><a href="#local-6989586621679676276"><span class="hs-identifier hs-var">a24</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-445"></span><span>    </span><span class="annot"><span class="annottext">CabalSpecVersion
-&gt; PackageIdentifier
-&gt; Either License License
-&gt; [FilePath]
-&gt; ShortText
-&gt; ShortText
-&gt; ShortText
-&gt; ShortText
-&gt; [(CompilerFlavor, VersionRange)]
-&gt; ShortText
-&gt; ShortText
-&gt; ShortText
-&gt; [SourceRepo]
-&gt; ShortText
-&gt; ShortText
-&gt; ShortText
-&gt; [(FilePath, FilePath)]
-&gt; Maybe BuildType
-&gt; Maybe SetupBuildInfo
-&gt; Maybe Library
-&gt; [Library]
-&gt; [Executable]
-&gt; [ForeignLib]
-&gt; [TestSuite]
-&gt; [Benchmark]
-&gt; [FilePath]
-&gt; FilePath
-&gt; [FilePath]
-&gt; [FilePath]
-&gt; [FilePath]
-&gt; PackageDescription
</span><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-var">PackageDescription</span></a></span><span> </span><span class="annot"><span class="annottext">CabalSpecVersion
</span><a href="#local-6989586621679676305"><span class="hs-identifier hs-var">a1</span></a></span><span> </span><span class="annot"><span class="annottext">PackageIdentifier
</span><a href="#local-6989586621679676304"><span class="hs-identifier hs-var">a2</span></a></span><span> </span><span class="annot"><span class="annottext">Either License License
</span><a href="#local-6989586621679676303"><span class="hs-identifier hs-var">a3</span></a></span><span> </span><span class="annot"><span class="annottext">[FilePath]
</span><a href="#local-6989586621679676302"><span class="hs-identifier hs-var">a4</span></a></span><span> </span><span class="annot"><span class="annottext">ShortText
</span><a href="#local-6989586621679676301"><span class="hs-identifier hs-var">a5</span></a></span><span> </span><span class="annot"><span class="annottext">ShortText
</span><a href="#local-6989586621679676300"><span class="hs-identifier hs-var">a6</span></a></span><span> </span><span class="annot"><span class="annottext">ShortText
</span><a href="#local-6989586621679676299"><span class="hs-identifier hs-var">a7</span></a></span><span> </span><span class="annot"><span class="annottext">ShortText
</span><a href="#local-6989586621679676298"><span class="hs-identifier hs-var">a8</span></a></span><span> </span><span class="annot"><span class="annottext">[(CompilerFlavor, VersionRange)]
</span><a href="#local-6989586621679676297"><span class="hs-identifier hs-var">a9</span></a></span><span> </span><span class="annot"><span class="annottext">ShortText
</span><a href="#local-6989586621679676296"><span class="hs-identifier hs-var">a10</span></a></span><span> </span><span class="annot"><span class="annottext">ShortText
</span><a href="#local-6989586621679676295"><span class="hs-identifier hs-var">a11</span></a></span><span> </span><span class="annot"><span class="annottext">ShortText
</span><a href="#local-6989586621679676294"><span class="hs-identifier hs-var">a12</span></a></span><span> </span><span class="annot"><span class="annottext">[SourceRepo]
</span><a href="#local-6989586621679676293"><span class="hs-identifier hs-var">a13</span></a></span><span> </span><span class="annot"><span class="annottext">ShortText
</span><a href="#local-6989586621679676292"><span class="hs-identifier hs-var">a14</span></a></span><span> </span><span class="annot"><span class="annottext">ShortText
</span><a href="#local-6989586621679676291"><span class="hs-identifier hs-var">a15</span></a></span><span> </span><span class="annot"><span class="annottext">ShortText
</span><a href="#local-6989586621679676290"><span class="hs-identifier hs-var">a16</span></a></span><span> </span><span class="annot"><span class="annottext">[(FilePath, FilePath)]
</span><a href="#local-6989586621679676289"><span class="hs-identifier hs-var">a17</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe BuildType
</span><a href="#local-6989586621679676288"><span class="hs-identifier hs-var">a18</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe SetupBuildInfo
</span><a href="#local-6989586621679676287"><span class="hs-identifier hs-var">a19</span></a></span><span>
</span><span id="line-446"></span><span>        </span><span class="annot"><span class="annottext">(Maybe Library
 -&gt; [Library]
 -&gt; [Executable]
 -&gt; [ForeignLib]
 -&gt; [TestSuite]
 -&gt; [Benchmark]
 -&gt; [FilePath]
 -&gt; FilePath
 -&gt; [FilePath]
 -&gt; [FilePath]
 -&gt; [FilePath]
 -&gt; PackageDescription)
-&gt; f (Maybe Library)
-&gt; f ([Library]
      -&gt; [Executable]
      -&gt; [ForeignLib]
      -&gt; [TestSuite]
      -&gt; [Benchmark]
      -&gt; [FilePath]
      -&gt; FilePath
      -&gt; [FilePath]
      -&gt; [FilePath]
      -&gt; [FilePath]
      -&gt; PackageDescription)
forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/Data.Functor.html#%3C%24%3E"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Library -&gt; f Library) -&gt; Maybe Library -&gt; f (Maybe Library)
forall (t :: * -&gt; *) (f :: * -&gt; *) a b.
(Traversable t, Applicative f) =&gt;
(a -&gt; f b) -&gt; t a -&gt; f (t b)
</span><a href="../../base/src/Data.Traversable.html#traverse"><span class="hs-identifier hs-var">traverse</span></a></span><span> </span><span class="annot"><span class="annottext">((Library -&gt; f Library) -&gt; Maybe Library -&gt; f (Maybe Library))
-&gt; ((BuildInfo -&gt; f BuildInfo) -&gt; Library -&gt; f Library)
-&gt; (BuildInfo -&gt; f BuildInfo)
-&gt; Maybe Library
-&gt; f (Maybe Library)
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">(BuildInfo -&gt; f BuildInfo) -&gt; Library -&gt; f Library
forall a. HasBuildInfo a =&gt; Lens' a BuildInfo
</span><a href="Distribution.Types.BuildInfo.Lens.html#buildInfo"><span class="hs-identifier hs-var">L.buildInfo</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">BuildInfo -&gt; f BuildInfo
</span><a href="#local-6989586621679676306"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe Library
</span><a href="#local-6989586621679676286"><span class="hs-identifier hs-var">x1</span></a></span><span> </span><span class="hs-comment">-- library</span><span>
</span><span id="line-447"></span><span>        </span><span class="annot"><span class="annottext">f ([Library]
   -&gt; [Executable]
   -&gt; [ForeignLib]
   -&gt; [TestSuite]
   -&gt; [Benchmark]
   -&gt; [FilePath]
   -&gt; FilePath
   -&gt; [FilePath]
   -&gt; [FilePath]
   -&gt; [FilePath]
   -&gt; PackageDescription)
-&gt; f [Library]
-&gt; f ([Executable]
      -&gt; [ForeignLib]
      -&gt; [TestSuite]
      -&gt; [Benchmark]
      -&gt; [FilePath]
      -&gt; FilePath
      -&gt; [FilePath]
      -&gt; [FilePath]
      -&gt; [FilePath]
      -&gt; PackageDescription)
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Library -&gt; f Library) -&gt; [Library] -&gt; f [Library]
forall (t :: * -&gt; *) (f :: * -&gt; *) a b.
(Traversable t, Applicative f) =&gt;
(a -&gt; f b) -&gt; t a -&gt; f (t b)
</span><a href="../../base/src/Data.Traversable.html#traverse"><span class="hs-identifier hs-var">traverse</span></a></span><span> </span><span class="annot"><span class="annottext">((Library -&gt; f Library) -&gt; [Library] -&gt; f [Library])
-&gt; ((BuildInfo -&gt; f BuildInfo) -&gt; Library -&gt; f Library)
-&gt; (BuildInfo -&gt; f BuildInfo)
-&gt; [Library]
-&gt; f [Library]
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">(BuildInfo -&gt; f BuildInfo) -&gt; Library -&gt; f Library
forall a. HasBuildInfo a =&gt; Lens' a BuildInfo
</span><a href="Distribution.Types.BuildInfo.Lens.html#buildInfo"><span class="hs-identifier hs-var">L.buildInfo</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">BuildInfo -&gt; f BuildInfo
</span><a href="#local-6989586621679676306"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">[Library]
</span><a href="#local-6989586621679676285"><span class="hs-identifier hs-var">x2</span></a></span><span> </span><span class="hs-comment">-- sub libraries</span><span>
</span><span id="line-448"></span><span>        </span><span class="annot"><span class="annottext">f ([Executable]
   -&gt; [ForeignLib]
   -&gt; [TestSuite]
   -&gt; [Benchmark]
   -&gt; [FilePath]
   -&gt; FilePath
   -&gt; [FilePath]
   -&gt; [FilePath]
   -&gt; [FilePath]
   -&gt; PackageDescription)
-&gt; f [Executable]
-&gt; f ([ForeignLib]
      -&gt; [TestSuite]
      -&gt; [Benchmark]
      -&gt; [FilePath]
      -&gt; FilePath
      -&gt; [FilePath]
      -&gt; [FilePath]
      -&gt; [FilePath]
      -&gt; PackageDescription)
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Executable -&gt; f Executable) -&gt; [Executable] -&gt; f [Executable]
forall (t :: * -&gt; *) (f :: * -&gt; *) a b.
(Traversable t, Applicative f) =&gt;
(a -&gt; f b) -&gt; t a -&gt; f (t b)
</span><a href="../../base/src/Data.Traversable.html#traverse"><span class="hs-identifier hs-var">traverse</span></a></span><span> </span><span class="annot"><span class="annottext">((Executable -&gt; f Executable) -&gt; [Executable] -&gt; f [Executable])
-&gt; ((BuildInfo -&gt; f BuildInfo) -&gt; Executable -&gt; f Executable)
-&gt; (BuildInfo -&gt; f BuildInfo)
-&gt; [Executable]
-&gt; f [Executable]
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">(BuildInfo -&gt; f BuildInfo) -&gt; Executable -&gt; f Executable
forall a. HasBuildInfo a =&gt; Lens' a BuildInfo
</span><a href="Distribution.Types.BuildInfo.Lens.html#buildInfo"><span class="hs-identifier hs-var">L.buildInfo</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">BuildInfo -&gt; f BuildInfo
</span><a href="#local-6989586621679676306"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">[Executable]
</span><a href="#local-6989586621679676284"><span class="hs-identifier hs-var">x3</span></a></span><span> </span><span class="hs-comment">-- executables</span><span>
</span><span id="line-449"></span><span>        </span><span class="annot"><span class="annottext">f ([ForeignLib]
   -&gt; [TestSuite]
   -&gt; [Benchmark]
   -&gt; [FilePath]
   -&gt; FilePath
   -&gt; [FilePath]
   -&gt; [FilePath]
   -&gt; [FilePath]
   -&gt; PackageDescription)
-&gt; f [ForeignLib]
-&gt; f ([TestSuite]
      -&gt; [Benchmark]
      -&gt; [FilePath]
      -&gt; FilePath
      -&gt; [FilePath]
      -&gt; [FilePath]
      -&gt; [FilePath]
      -&gt; PackageDescription)
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(ForeignLib -&gt; f ForeignLib) -&gt; [ForeignLib] -&gt; f [ForeignLib]
forall (t :: * -&gt; *) (f :: * -&gt; *) a b.
(Traversable t, Applicative f) =&gt;
(a -&gt; f b) -&gt; t a -&gt; f (t b)
</span><a href="../../base/src/Data.Traversable.html#traverse"><span class="hs-identifier hs-var">traverse</span></a></span><span> </span><span class="annot"><span class="annottext">((ForeignLib -&gt; f ForeignLib) -&gt; [ForeignLib] -&gt; f [ForeignLib])
-&gt; ((BuildInfo -&gt; f BuildInfo) -&gt; ForeignLib -&gt; f ForeignLib)
-&gt; (BuildInfo -&gt; f BuildInfo)
-&gt; [ForeignLib]
-&gt; f [ForeignLib]
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">(BuildInfo -&gt; f BuildInfo) -&gt; ForeignLib -&gt; f ForeignLib
forall a. HasBuildInfo a =&gt; Lens' a BuildInfo
</span><a href="Distribution.Types.BuildInfo.Lens.html#buildInfo"><span class="hs-identifier hs-var">L.buildInfo</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">BuildInfo -&gt; f BuildInfo
</span><a href="#local-6989586621679676306"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">[ForeignLib]
</span><a href="#local-6989586621679676283"><span class="hs-identifier hs-var">x4</span></a></span><span> </span><span class="hs-comment">-- foreign libs</span><span>
</span><span id="line-450"></span><span>        </span><span class="annot"><span class="annottext">f ([TestSuite]
   -&gt; [Benchmark]
   -&gt; [FilePath]
   -&gt; FilePath
   -&gt; [FilePath]
   -&gt; [FilePath]
   -&gt; [FilePath]
   -&gt; PackageDescription)
-&gt; f [TestSuite]
-&gt; f ([Benchmark]
      -&gt; [FilePath]
      -&gt; FilePath
      -&gt; [FilePath]
      -&gt; [FilePath]
      -&gt; [FilePath]
      -&gt; PackageDescription)
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(TestSuite -&gt; f TestSuite) -&gt; [TestSuite] -&gt; f [TestSuite]
forall (t :: * -&gt; *) (f :: * -&gt; *) a b.
(Traversable t, Applicative f) =&gt;
(a -&gt; f b) -&gt; t a -&gt; f (t b)
</span><a href="../../base/src/Data.Traversable.html#traverse"><span class="hs-identifier hs-var">traverse</span></a></span><span> </span><span class="annot"><span class="annottext">((TestSuite -&gt; f TestSuite) -&gt; [TestSuite] -&gt; f [TestSuite])
-&gt; ((BuildInfo -&gt; f BuildInfo) -&gt; TestSuite -&gt; f TestSuite)
-&gt; (BuildInfo -&gt; f BuildInfo)
-&gt; [TestSuite]
-&gt; f [TestSuite]
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">(BuildInfo -&gt; f BuildInfo) -&gt; TestSuite -&gt; f TestSuite
forall a. HasBuildInfo a =&gt; Lens' a BuildInfo
</span><a href="Distribution.Types.BuildInfo.Lens.html#buildInfo"><span class="hs-identifier hs-var">L.buildInfo</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">BuildInfo -&gt; f BuildInfo
</span><a href="#local-6989586621679676306"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">[TestSuite]
</span><a href="#local-6989586621679676282"><span class="hs-identifier hs-var">x5</span></a></span><span> </span><span class="hs-comment">-- test suites</span><span>
</span><span id="line-451"></span><span>        </span><span class="annot"><span class="annottext">f ([Benchmark]
   -&gt; [FilePath]
   -&gt; FilePath
   -&gt; [FilePath]
   -&gt; [FilePath]
   -&gt; [FilePath]
   -&gt; PackageDescription)
-&gt; f [Benchmark]
-&gt; f ([FilePath]
      -&gt; FilePath
      -&gt; [FilePath]
      -&gt; [FilePath]
      -&gt; [FilePath]
      -&gt; PackageDescription)
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Benchmark -&gt; f Benchmark) -&gt; [Benchmark] -&gt; f [Benchmark]
forall (t :: * -&gt; *) (f :: * -&gt; *) a b.
(Traversable t, Applicative f) =&gt;
(a -&gt; f b) -&gt; t a -&gt; f (t b)
</span><a href="../../base/src/Data.Traversable.html#traverse"><span class="hs-identifier hs-var">traverse</span></a></span><span> </span><span class="annot"><span class="annottext">((Benchmark -&gt; f Benchmark) -&gt; [Benchmark] -&gt; f [Benchmark])
-&gt; ((BuildInfo -&gt; f BuildInfo) -&gt; Benchmark -&gt; f Benchmark)
-&gt; (BuildInfo -&gt; f BuildInfo)
-&gt; [Benchmark]
-&gt; f [Benchmark]
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">(BuildInfo -&gt; f BuildInfo) -&gt; Benchmark -&gt; f Benchmark
forall a. HasBuildInfo a =&gt; Lens' a BuildInfo
</span><a href="Distribution.Types.BuildInfo.Lens.html#buildInfo"><span class="hs-identifier hs-var">L.buildInfo</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">BuildInfo -&gt; f BuildInfo
</span><a href="#local-6989586621679676306"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">[Benchmark]
</span><a href="#local-6989586621679676281"><span class="hs-identifier hs-var">x6</span></a></span><span> </span><span class="hs-comment">-- benchmarks</span><span>
</span><span id="line-452"></span><span>        </span><span class="annot"><span class="annottext">f ([FilePath]
   -&gt; FilePath
   -&gt; [FilePath]
   -&gt; [FilePath]
   -&gt; [FilePath]
   -&gt; PackageDescription)
-&gt; f [FilePath]
-&gt; f (FilePath
      -&gt; [FilePath] -&gt; [FilePath] -&gt; [FilePath] -&gt; PackageDescription)
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[FilePath] -&gt; f [FilePath]
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">[FilePath]
</span><a href="#local-6989586621679676280"><span class="hs-identifier hs-var">a20</span></a></span><span>                      </span><span class="hs-comment">-- data files</span><span>
</span><span id="line-453"></span><span>        </span><span class="annot"><span class="annottext">f (FilePath
   -&gt; [FilePath] -&gt; [FilePath] -&gt; [FilePath] -&gt; PackageDescription)
-&gt; f FilePath
-&gt; f ([FilePath] -&gt; [FilePath] -&gt; [FilePath] -&gt; PackageDescription)
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath -&gt; f FilePath
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">FilePath
</span><a href="#local-6989586621679676279"><span class="hs-identifier hs-var">a21</span></a></span><span>                      </span><span class="hs-comment">-- data dir</span><span>
</span><span id="line-454"></span><span>        </span><span class="annot"><span class="annottext">f ([FilePath] -&gt; [FilePath] -&gt; [FilePath] -&gt; PackageDescription)
-&gt; f [FilePath]
-&gt; f ([FilePath] -&gt; [FilePath] -&gt; PackageDescription)
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[FilePath] -&gt; f [FilePath]
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">[FilePath]
</span><a href="#local-6989586621679676278"><span class="hs-identifier hs-var">a22</span></a></span><span>                      </span><span class="hs-comment">-- extra src files</span><span>
</span><span id="line-455"></span><span>        </span><span class="annot"><span class="annottext">f ([FilePath] -&gt; [FilePath] -&gt; PackageDescription)
-&gt; f [FilePath] -&gt; f ([FilePath] -&gt; PackageDescription)
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[FilePath] -&gt; f [FilePath]
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">[FilePath]
</span><a href="#local-6989586621679676277"><span class="hs-identifier hs-var">a23</span></a></span><span>                      </span><span class="hs-comment">-- extra temp files</span><span>
</span><span id="line-456"></span><span>        </span><span class="annot"><span class="annottext">f ([FilePath] -&gt; PackageDescription)
-&gt; f [FilePath] -&gt; f PackageDescription
forall (f :: * -&gt; *) a b. Applicative f =&gt; f (a -&gt; b) -&gt; f a -&gt; f b
</span><a href="../../base/src/GHC.Base.html#%3C%2A%3E"><span class="hs-operator hs-var">&lt;*&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[FilePath] -&gt; f [FilePath]
forall (f :: * -&gt; *) a. Applicative f =&gt; a -&gt; f a
</span><a href="../../base/src/GHC.Base.html#pure"><span class="hs-identifier hs-var">pure</span></a></span><span> </span><span class="annot"><span class="annottext">[FilePath]
</span><a href="#local-6989586621679676276"><span class="hs-identifier hs-var">a24</span></a></span><span>                      </span><span class="hs-comment">-- extra doc files</span><span>
</span><span id="line-457"></span></pre></body></html>